Systems and methods for structurally analyzing and printing parts

ABSTRACT

The present disclosure provides methods and systems for performing analysis on a part for printing. The method may comprise receiving, in computer memory, a computer model of the part and partitioning the computer model of the part into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material for forming the part, to yield a partitioned computer model. At least a first mesh may be generated in the first region and at least a second mesh may be generated in the second region to yield a mesh array in the partitioned computer model. The mesh array, including the first mesh and the second mesh, may be to determine one or more properties of the part. The mesh array may be used to generate a print head toolpath usable to print the part.

CROSS-REFERENCE

This application claims priority to U.S. Patent Application No. 15/232,767, filed Aug. 9, 2016, now U.S. Pat. No. 9,656,429, U.S. Provisional Application No. 62/404,476, filed Oct. 5, 2016, U.S. patent application Ser. No. 15/479,055, filed Apr. 4, 2017, and U.S. Provisional Application No. 62/492,066, filed Apr. 28, 2017, each of which is entirely incorporated herein by reference.

BACKGROUND

Additive manufacturing is a process of creating three-dimensional parts by depositing overlapping layers of material under the guided control of a computer. Techniques of additive manufacturing include, without limitation, fused deposition modeling (FDM), fused filament fabrication (FFF), Plastic Jet Printing (PJP), stereolithography (SLA), selective laser sintering (SLS), selective laser melting (SLM), and material jetting (MJ). Using this technique, a material (e.g., a heated and/or pressurized thermoplastic) passes through a print head. The print head is moved in a predefined trajectory (a.k.a., a tool path) as the material discharges from the print head, such that the material is laid down in a particular pattern and shape of overlapping layers. The material, after exiting the print head, hardens into a final form.

In some applications, one or more fibers (e.g., one or more continuous or chopped fibers) move through the print head along with the material to act as reinforcement for the final solidified part. This process may be referred to as reinforced filament fusion (RFF).

Although FDM, FFF, PJP, and RFF manufacturing of structures can be an efficient way to produce high-performance and geometrically complex structures, the performance of the printed structures may be difficult to predict. In particular, mechanical properties (e.g., stiffness, strength, etc.) of such printed structures are anisotropic in nature, exhibiting different characteristics in X, Y, and Z directions.

Using SLA, SLS, and SLM, a material (e.g., a resin or a powder) may be deposited in a layer upon a base (e.g., a build platform or a previously fabricated part layer), and an energy source (e.g., an ultraviolet light or a laser beam) may be directed onto the layer in a particular pattern to cause the material to sinter, melt, and/or harden in the shape of the pattern. Using MJ, drops of liquid material may be placed at select locations on the base and then exposed to the energy source to cause the material to harden in a particular pattern. Traditionally, SLA, SLS, SLM, and MJ have been implemented using a slicing technique. In particular, a three-dimensional (3D) model of the part to be printed was sliced into multiple two-dimensional (2D) layers, which were then converted into machine code. The machine code was provided to the corresponding printer, allowing the printer to move the associated energy source in an x-y plane and print each overlapping layer of the part.

Historically, printed structures have been created using a trial-and-error method, where the part was printed, tested, and re-printed in a different manner until a successful part was produced. This process, while ultimately successful, can also be time consuming and expensive.

Recently, finite element analysis (FEA) has been used with some success to predict the performance of a printed part. In particular, printed parts have been analyzed using FEA, for example based on characteristics of the material and bind sites located between layers of deposited material. When using FEA, a physical part may not be printed until a theoretical design is created that may pass minimum FEA thresholds.

SUMMARY

Recognized herein are various issues with prior methods for designing printed parts. For example, prior methods may not fully account for the actual tool path or the anisotropic nature of the printed structures.

As another example, printing parts may require a trial-and-error approach, in which a part having been assigned an initial layout is printed, tested, and re-printed using a different layout until a successful part is produced. This may be time consuming and ultimately expensive.

The present disclosure provides analysis systems and methods, including systems and methods for structurally analyzing voxel-printed parts. Such systems and methods may be used in three-dimensional printing.

The present disclosure provides methods for converting a three-dimensional (3D) part or model of the part into machine code. The 3D model may be pixelated into a collection of virtual volumetric shapes (e.g., cubes, spheres, pyramids, etc.), which may be referred to as voxels. In some instances, each voxel in a particular collection can be assigned a different material, a different size, a different shape, and/or a different property (e.g., stiffness, density, conductivity, reactivity, etc.). The collection of voxels may then be converted into machine code, which can be used to control movement of a 3D printer.

Mechanical properties (e.g., stiffness, strength, conductivity, reactivity, etc.) of printed structures may be anisotropic in nature, exhibiting different characteristics in X, Y, and Z directions depending on a layout of the voxels in the selected collection. This may make it difficult to predict the performance of the printed structures. However, the disclosed systems and methods advantageously enable such difficulty to be overcome. Systems and methods of the present disclosure may reduce, if not eliminate, any trial-and-error approach, in which a part having been assigned an initial layout is printed, tested, and re-printed using a different layout until a successful part is produced. This can advantageously reduce the time and cost associated with printed 3D parts.

Methods and systems provided herein may overcome various problems identified above. The present disclosure provides analysis systems and methods. In some cases, such systems and methods are used for structurally analyzing printed parts or objects.

In an aspect, the present disclosure provides a method for performing analysis on a part for printing, comprising (a) receiving, in computer memory, a computer model of the part; (b) partitioning the computer model of the part into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material for forming the part, to yield a partitioned computer model; (c) generating at least a first mesh in the first region and at least a second mesh in the second region to yield a mesh array in the partitioned computer model; (d) using the mesh array, including the first mesh and the second mesh, to determine one or more properties of the part; and (e) upon determining that the one or more properties meet a predetermined value(s), using the mesh array to generate a print head toolpath usable to print the part. In some embodiments, the method for performing analysis on a part for printing further comprises using the print head toolpath to print the part. In some embodiments, the method for performing analysis on a part for printing further comprises using fused filament fabrication to print the part.

In some embodiments, the first mesh is at a smaller scale than the second mesh. In some embodiments, the one or more properties are selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the second region encloses and/or connects to at least a portion of the first region. In some embodiments, the computer model of the part comprises one or more features of the part that is selected from the group consisting of corners, edges, surfaces, solids, ridges, salient points, and image texture. In some embodiments, the partitioning generates one or more parameters for printing the part, wherein the one or more parameters are selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. In some embodiments, the partitioning generates one or more numerical control programming code of the partitioned computer model. In some embodiments, the partitioning comprises slicing the part into a plurality of layers.

In some embodiments, the method for performing analysis on a part for printing further comprises performing finite element analysis on the toolpath. In some embodiments, the method for performing analysis on a part for printing further comprises subjecting the tool path to an intersection algorithm. In some embodiments, the intersection algorithm determines a fiber direction dependent material propert(ies). In some embodiments, the fiber direction dependent material property is a stress-strain matrix, a thermal conductivity matrix, or electrical conductivity matrix. In some embodiments, the infill pattern is a repeating pattern. In some embodiments, the infill pattern is selected from the group consisting of honeycomb, grid, harmonic, linear, diagonal, rectilinear, concentric, Hilbert curve, Archimedean chords, octagram spiral, and any combination thereof. In some embodiments, the infill pattern is harmonic. In some embodiments, the first mesh comprises a sub-mesh for at least one repeating unit of the repeating pattern of the infill pattern. In some embodiments, the at least one repeating unit of the repeating pattern comprises boundary regions and boundary nodes. In some embodiments, the boundary nodes provide stress measurements of the repeating pattern of the infill pattern. In some embodiments, the at least a first mesh comprises a plurality of meshes. In some embodiments, partitioning the computer model comprises slicing the computer model. In some embodiments, the method for performing analysis on a part for printing further comprises electronically outputting the print head tool path on a user interface. In some embodiments, the print head tool path on a user interface is electronically outputted on a graphical user interface.

In another aspect, the present disclosure provides a method for optimizing a toolpath trajectory for printing a part, comprising (a) receiving, in computer memory, a computer model of the part; (b) initiating virtual printing of the part in accordance with one or more printing characteristics of a three-dimensional printer, which virtual printing is performed along a virtual print head toolpath in accordance with the computer model of the part; (c) while virtually printing the part, (i) obtaining one or more physical properties of the part using a physical model, and (ii) determining whether the one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part; and (d) adjusting the virtual print head toolpath upon determining that the one or more physical properties of the part measured in (i) do not meet the at least one predetermined performance metric of the part, to yield an adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises determining that the one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part under the adjusted print head toolpath. In some embodiments, the virtual printing is in the absence of printing the part.

In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises printing the part. In some embodiments, the part is printed at least in part while virtually printing the part. In some embodiments, the part is printed along the print head tool path. In some embodiments, the part is printed along the adjusted print head tool path. In some embodiments, the part is printed using fused filament fabrication. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises electronically outputting the adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises continuing virtual printing of the part along the adjusted print head toolpath. In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises displaying the virtual printing of the part to a user on a graphical user interface. In some embodiments, displaying the virtual printing comprises displaying the virtual print head toolpath on the graphical user interface. In some embodiments, measuring the one or more physical properties comprises thermal modeling, stress modeling, rheology modeling, or any combination thereof.

In some embodiments, the method for optimizing a toolpath trajectory for printing a part further comprises generating one or more optimization metrics for the part prior to initiating virtual printing of the part, wherein the one or more optimization metrics is selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the one or more physical properties is selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, and melt density.

In another aspect, the present disclosure provides a method for optimizing a tool path trajectory for printing a part using a three-dimensional printer, comprising (a) printing the part using the three-dimensional printer, which printing is performed adjacent to a base along a toolpath in accordance with a computer model of the part; (b) while printing the part with the three-dimensional printer along the toolpath, (i) using one or more sensors to measure one or more structural or internal properties of the part, which one or more sensors are external to the base, and (ii) determining whether the one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part; (c) adjusting the toolpath upon determining that the one or more structural or internal properties of the part measured in (i) do not meet the at least one performance metric of the part, to yield an adjusted toolpath; and (d) continuing to print the part along the adjusted toolpath. In some embodiments, the printing includes use of fused filament deposition to generate at least a portion of the part.

In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises generating one or more optimization metrics for the part prior to initiating printing of the part. In some embodiments, the one or more optimization metrics comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. In some embodiments, the structural or internal properties comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density. In some embodiments, the one or more sensors comprise a camera. In some embodiments, the camera detects light in the infrared or visible portion of the electromagnetic spectrum. In some embodiments, the method for optimizing a tool path trajectory for printing a part using a three-dimensional printer further comprises using an image processing algorithm to evaluate data generated by one or more sensors to extract one or more structural or internal properties of the part. In some embodiments, the one or more sensors are positioned on a robot end-effector of the three-dimensional printer.

In another aspect, the present disclosure provides a method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer, comprising (a) printing the part using the three-dimensional printer, which printing is performed along a toolpath in accordance with a computer model of the part; (b) while printing the part with the three-dimensional printer along the toolpath, (i) using an optical sensor(s) to measure one or more structural or internal properties of the part, and (ii) determining whether the one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part; (c) adjusting the toolpath upon determining that the one or more structural or internal properties of the part measured in (i) do not meet the at least one performance metric of the part, to yield an adjusted print head toolpath; and (d) continuing to print the part along the adjusted toolpath. In some embodiments, the printing includes use of fused filament deposition to generate at least a portion of the part.

In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises generating one or more optimization metrics for the part prior to initiating printing of the part. In some embodiments, the one or more optimization metrics comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed. In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. In some embodiments, the structural or internal properties comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density. In some embodiments, the optical sensor(s) comprise a camera. In some embodiments, the camera detects light in the infrared or visible portion of the electromagnetic spectrum. In some embodiments, the method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer further comprises using an image processing algorithm to evaluate data generated by the optical sensor(s), to extract the one or more structural or internal properties of the part. In some embodiments, the optical sensor(s) are positioned on a robot end-effector of the three-dimensional printer.

In another aspect, the present disclosure provides a method for printing a part having a non-uniform stress profile, comprising (a) receiving, in computer memory, a computer model of the part; (b) partitioning the part into at least (i) a first region having a first stress profile and (ii) a second region having a second stress profile that is different than the first stress profile; (c) generating a print head toolpath in accordance with the first stress profile and the second stress profile, which print head toolpath compensates for stress difference(s) between the first region and the second region; and (d) outputting instructions comprising the toolpath for use in printing the part. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises printing the part.

In some embodiments, the method for printing a part having a non-uniform stress profile further comprises using fused filament fabrication to print the part. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises including fiber reinforcement along maximum non-uniform stress profiles of the first region. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises including fiber reinforcement along maximum non-uniform stress profiles of the second region. In some embodiments, the second region encloses and/or connects to at least a portion of the first region. In some embodiments, the first stress profile and the second stress profile comprise maximum non-uniform stress profiles and minimum non-uniform stress profiles. In some embodiments, the stress profile provides a direction of stress and stress values. In some embodiments, the instructions comprise use of local thickening, strut addition, or hollowing for stress reduction. In some embodiments, the partitioning generates one or more parameters for printing the part, wherein the one or more parameters is selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. In some embodiments, the partitioning generates one or more numerical control programming code of the computer model partitioned in (b) of the method for printing a part having a non-uniform stress profile. In some embodiments, the partitioning comprises slicing the part into a plurality of layers. In some embodiments, the method for printing a part having a non-uniform stress profile further comprises performing finite element analysis on the tool path.

In another aspect, the present disclosure provides a method for structurally analyzing and/or three-dimensional printing a part, comprising (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) using one or more computer processors to determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically outputting the performance of the part determined in (e).

In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.

In some embodiments, the method further comprises generating a virtual mesh of analytic elements within the model of the part, wherein determining the trajectory of the at least one stiffness-contributing portion comprises determining the trajectory of the at least one stiffness-contributing portion through each of the analytic elements. In some embodiments, further comprising determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements.

In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises: determining intersection points and directional vectors of the at least one stiffness contributing element within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness contributing element using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness contributing element, the one or more properties of the material, one or more properties of the at least one stiffness contributing element, and the directional vectors.

In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, further comprising receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information.

In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.

In some embodiments, the method further comprises generating a comparison of the performance of the part against a reference performance; and using the comparison to generate an additional print head tool path.

In some embodiments, the method further comprises using the print head to generate the part along the print head tool path. In some embodiments, the print head additively generates the part.

In some embodiments, the part is generated if the performance determined in (e) meets a reference performance. In some embodiments, the method further comprises receiving instruction(s) from a user to generate the part prior to using the print head to generate the part.

In some embodiments, the material further comprises a fiber.

Another aspect provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and/or three-dimensional printing a part, the method comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) determining a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically outputting the performance of the part determined in (e).

In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.

In some embodiments, the method further comprises generating a virtual mesh of analytic elements within the model of the part, and wherein determining the trajectory of the at least one stiffness-contributing portion comprises determining the trajectory of the at least one stiffness-contributing portion through each of the analytic elements.

In some embodiments, the method further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on aggregation of three-dimensional stiffnesses of each of the analytic elements.

In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises: determining intersection points and directional vectors of the at least one stiffness contributing element within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness contributing element using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness contributing element, the one or more properties of the material, one or more properties of the at least one stiffness contributing element, and the directional vectors.

In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information.

In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises: receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.

In some embodiments, the method further comprises generating a comparison of the performance of the part against a reference performance; and generating an additional print head tool path using the comparison. In some embodiments, the method further comprises using the print head to generate the part along the print head tool path. In some embodiments, the part is generated if the performance determined in (e) meets a reference performance.

In another aspect, a system for structurally analyzing and/or three-dimensional printing a part is provided. The system comprises computer memory comprising computer-executable instructions stored therein for analyzing and/or three-dimensional printing the part; and one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to: (a) receive, in the computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receive, in the computer memory, one or more properties of the material; (c) using the model, determine a print head tool path for use during the three-dimensional printing of the part; (d) determine a trajectory of the at least one stiffness-contributing portion of the material based at least in part on the print head tool path; (e) determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically output the performance of the part determined in (e).

In another aspect, the present disclosure provides a method for structurally analyzing a printed part (or object). The method may include receiving a model of the part to be printed from a material consisting of at least a matrix, receiving properties for the material, and determining a print head tool path for printing the part. The method may also include determining a trajectory of at least one stiffness-contributing portion of the material. The trajectory may be determined based on the print head tool path. The method may further include predicting a performance of the part based on the properties and the trajectory, and displaying the predicted performance of the part.

In another aspect, the present disclosure provides a method for structurally analyzing a part, comprising (a) receiving a model of the part to be printed from a material consisting of at least a matrix; (b) receiving properties for the material; (c) determining a print head tool path for printing the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based on the print head tool path; (e) predicting a performance of the part based on the properties and also based on the trajectory of the at least one stiffness-contributing portion; and displaying the predicted performance of the part.

In another aspect, the present disclosure provides a non-transitory computer-readable medium storing instructions that are executable by at least one processor to cause the at least one processor to perform a method for structurally analyzing a part, the method comprising (a) receiving a model of the part to be printed from a material consisting of at least a matrix; (b) receiving properties for the material; (c) determining a print head tool path for printing the part; (d) determining a trajectory of at least one stiffness-contributing portion of the material based on the print head tool path; (e) predicting a performance of the part based on the properties and also based on the trajectory of the at least one stiffness-contributing portion; and (f) displaying the predicted performance of the part.

In another aspect, the present disclosure provides a system for structurally analyzing a part. The system may include a display, a memory having computer-executable instructions stored thereon, and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part to be printed from a material comprising a matrix and at least one fiber, to receive material properties for the matrix and at least one fiber, to receive intended or predetermined use information associated with the part, and to determine a print head tool path for printing the part. In some cases, the material consists of the matrix and at least one fiber. The processor may also execute the stored instructions to generate a virtual mesh of analytic elements within the model of the part, to determine the trajectory of the at least one fiber through each of the analytic elements based on the print head tool path, and to determine a three-dimensional stiffness of each of the analytic elements based on the trajectory of the at least one fiber through each of the analytic elements and based on the material properties for the matrix and the at least one fiber. The processor may further execute the stored instructions to predict at least one of a stress field and a displacement field of the part based on aggregation of the three-dimensional stiffnesses of the analytic elements and the intended use information, and to show on the display a graphical representation of the predicted at least one of the stress field and the displacement field of the part overlapped with the model of the part and the print head tool path.

Consistent with other disclosed embodiments, non-transitory computer-readable storage media can store program instructions, which may be executed by a computer processor to perform any of the methods described herein.

In another aspect, the present disclosure provides a method for structurally analyzing and printing a part, comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) generating a virtual mesh of analytic elements within the model of the part and determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) using one or more computer processors to determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); (f) electronically outputting the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path. In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains. In some embodiments, the method for structurally analyzing and printing a part further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises determining intersection points and directional vectors of the at least one stiffness-contributing portion within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness-contributing portion using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness-contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness-contributing portion, and the directional vectors. In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information. In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.

In some embodiments, the method for structurally analyzing and printing a part further comprises generating a comparison of the performance of the part against a reference performance; and using the comparison to generate an additional print head tool path. In some embodiments, the print head additively prints the part. In some embodiments, the part is printed if the performance determined in (e) meets a reference performance. In some embodiments, the method for structurally analyzing and printing a part further comprises receiving instruction(s) from a user to print the part prior to using the print head to print the part. In some embodiments, the material further comprises a fiber.

In another aspect, the present disclosure provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and printing a part, the method comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receiving, in computer memory, one or more properties for the material; (c) using the model, determining a print head tool path for use during the three-dimensional printing of the part; (d) generating a virtual mesh of analytic elements within the model of the part and determining a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) determining a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); (f) electronically outputting the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path. In some embodiments, the at least one stiffness-contributing portion is at least one of a continuous fiber, chopped fibers, and polymer chains.

In some embodiments, the method further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion, wherein (e) comprises determining the performance of the part based at least in part on aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, determining the three-dimensional stiffness of each of the analytic elements comprises determining intersection points and directional vectors of the at least one stiffness-contributing portion within each of the analytic elements; determining a volume of the analytic elements consumed by the at least one stiffness-contributing portion using the intersection points; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements consumed by the at least one stiffness-contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness-contributing portion, and the directional vectors. In some embodiments, the performance of the part determined in (e) comprises at least one of a displacement field and a stress field of the part. In some embodiments, the method further comprises receiving use information for the part, and wherein (e) comprises determining at least one of the displacement field and the stress field of the part based at least in part on the use information. In some embodiments, (f) comprises displaying the performance of the part determined in (e) on a user interface. In some embodiments, displaying the performance of the part comprises displaying on the user interface a graphical representation of the performance determined in (e) overlapped with one or more of the model of the part and the print head tool path. In some embodiments, the method further comprises: receiving a control instruction from a user regarding viewing of progression of the print head during virtual three-dimensional printing of the part; and responsively displaying on the user interface the performance overlapped with a corresponding portion of the print head tool path on the part.

In some embodiments, the method further comprises: generating a comparison of the performance of the part against a reference performance; and generating an additional print head tool path using the comparison. In some embodiments, the part is printed if the performance determined in (e) meets a reference performance.

In another aspect, the present disclosure provides a system for structurally analyzing and printing a part, comprising computer memory comprising computer-executable instructions stored therein for analyzing and printing the part; one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to: (a) receive, in the computer memory, a model of the part for three-dimensional printing from a material comprising a matrix and fiber material; (b) receive, in the computer memory, one or more properties of the material; (c) using the model, determine a print head tool path for use during the three-dimensional printing of the part; (d) generate a virtual mesh of analytic elements within the model of the part and determine a trajectory of at least one stiffness-contributing portion of the material based at least in part on the print head tool path, wherein the trajectory of the at least one stiffness-contributing portion is determined through each of the analytic elements in the virtual mesh; (e) determine a performance of the part based at least in part on the one or more properties received in (b) and the trajectory of the at least one stiffness-contributing portion determined in (d); and (f) electronically output the performance of the part determined in (e); and (g) using a print head to print the part along the print head tool path.

In some embodiments, the one or more computer processors are programmed to execute the computer-executable instructions to determine a three-dimensional stiffness of each of the analytic elements based at least in part on (i) the trajectory of the at least one stiffness-contributing portion through each of the analytic elements and (ii) the one or more properties of the material and the at least one stiffness-contributing portion. In some embodiments, the one or more computer processors are programmed to execute the computer-executable instructions to determine the performance of the part based at least in part on an aggregation of three-dimensional stiffnesses of each of the analytic elements. In some embodiments, wherein the one or more computer processors are programmed to execute the computer-executable instructions to receive instruction(s) from a user to print the part prior to using the print head to print the part.

In another aspect, the present disclosure provides a method for structurally analyzing a three-dimensional object, comprising (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) using one or more computer processors to determine a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object. In some embodiments, the at least one stiffness-contributing portion corresponds to one or more members selected from the group consisting of a continuous fiber, chopped fibers, and polymer chains. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises generating a mesh of analytic elements corresponding to the model of the three-dimensional object; and determining a trajectory of the at least one stiffness-contributing portion through the mesh of analytic elements. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining a three-dimensional stiffness of each of the analytic elements using the at least one stiffness-contributing portion. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining a three-dimensional stiffness of each of the analytic elements based at least in part on one or more of (i) the trajectory of the at least one stiffness-contributing portion through the analytic elements, (ii) the one or more properties of the material, and (iii) an orientation of the at least one stiffness-contributing portion relative to one another. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises determining intersection points and directional vectors of the at least one stiffness contributing portion; using the intersection points to determine a volume of the analytic elements corresponding to the at least one stiffness contributing portion; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements corresponding to the at least one stiffness contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness contributing portion, and the directional vectors. In some embodiments, (b) comprises determining the performance of the three-dimensional object based at least in part on an aggregation of three-dimensional stiffnesses of the analytic elements. In some embodiments, the performance of the three-dimensional object determined in (b) comprises at least one of a displacement field and a stress field of the three-dimensional object.

In some embodiments, the method for structurally analyzing a three-dimensional object further comprises receiving use information for the three-dimensional object; and determining at least one of the displacement field and the stress field of the three-dimensional object based at least in part on the use information. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises displaying, on a graphical user interface, (i) the performance or (ii) the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises displaying, on the graphical user interface, a graphical representation of the performance and one or more of (i) the model of the three-dimensional object, and (ii) the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises receiving instruction from a user to view a progression of the print head during simulated printing of the three-dimensional object along the print head tool path; and displaying on the graphical user interface the performance and at least a portion of the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises transmitting instructions to a three-dimensional printer comprising the print head to print at least a portion of the three-dimensional object along the print head tool path. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises using a three-dimensional printer comprising the print head to print at least a portion of the three-dimensional object along the print head tool path. In some embodiments, the print head additively generates the at least the portion of three-dimensional object.

In some embodiments, the method for structurally analyzing a three-dimensional object further comprises prior to using the print head to print the at least the portion of the three-dimensional object, receiving instruction(s) from a user to print the at least the portion of the three-dimensional object. In some embodiments, the at least the portion of the three-dimensional object is printed if the performance meets with respect to at least one reference performance. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises repeating (c) to generate one or more additional print head tool paths. In some embodiments, the method for structurally analyzing a three-dimensional object further comprises generating an additional print head tool path upon processing the performance of the three-dimensional object against at least one reference performance, which additional print head tool path provides an additional performance of the three-dimensional object; and electronically outputting the additional print head tool path, wherein the additional print head tool path is usable by the print head to print the three-dimensional object from the material comprising the fiber.

In another aspect, the present disclosure provides a non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing a three-dimensional object, the method comprising (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) determining a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object.

In another aspect, the present disclosure provides a system for structurally analyzing a three-dimensional object, comprising computer memory comprising machine-executable instructions stored therein for structurally analyzing the three-dimensional object and one or more computer processors in electrical communication with the computer memory and programmed to execute the machine-executable instructions to (i) use a model of the three-dimensional object to generate a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (ii) determine a performance of the three-dimensional object based at least in part on (a) one or more properties of the material and (b) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (iii) electronically output the performance of the three-dimensional object. In some embodiments, the system for structurally analyzing a three-dimensional object further comprises a print head that is configured to print the three-dimensional object along the print head tool path.

In an aspect, the present disclosure provides a method for structurally analyzing and/or printing a part. The method may include receiving a model of the part, and determining a layout of voxels within the model. The method may also include generating a mesh of analysis elements within the model, and predicting a performance of the part based at least in part on intersections of the voxels and the analysis elements. The method may further comprise displaying the predicted performance of the part.

In another aspect, the present disclosure provides a system for structurally analyzing and/or printing a part. The system may include a display, a memory having computer-executable instructions stored thereon, and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part, to receive a desired (or predetermined) performance of the part, and to determine a layout of voxels within the model based at least in part on the desired performance. The processor may also execute the stored instructions to determine properties for each of the voxels in the layout, to generate a mesh of analysis elements within the model, and to determine local properties of each of the analysis elements of the mesh based at least in part on intersections of the voxels and the analysis elements and based at least in part on the properties of each of the voxels. The processor may further execute the instructions to receive intended (or predetermined) use information for the part, and to predict a performance of the part based at least in part on an aggregation of the properties of each of the analysis elements and based at least in part on the intended use information. The processor may execute the instructions to display the predicted performance of the part overlapped with the model of the part and the layout of the voxels, to make a comparison of the predicted performance of the part with the desired (or predetermined) performance, and to selectively generate a new layout of the voxels based at least in part on the comparison.

Consistent with other disclosed embodiments, non-transitory computer-readable storage media can store program instructions, which are executed by a processor to perform any of the methods described herein.

In another aspect, a method for structurally analyzing and/or printing a part comprises (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) using one or more computer processors to determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).

In another aspect, a non-transitory computer-readable medium comprises machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and/or printing a part, the method comprising (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) determining a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).

In another aspect, a system for structurally analyzing and/or printing a part comprises computer memory comprising computer-executable instructions stored therein for analyzing and/or printing the part; and one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to (a) receive a model of the part for three-dimensional printing; (b) determine a layout of voxels within the model; (c) generate a mesh of analysis elements within the model; (d) determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) provide an electronic output of the performance of the part determined in (d).

In another aspect, a system for structurally analyzing a part comprises a display; a memory having computer-executable instructions stored thereon; and a processor in communication with the display and configured to execute the stored instructions to receive a model of the part; receive a predetermined performance of the part; determine a layout of voxels within the model based at least in part on the predetermined performance; determine one or more properties for each of the voxels in the layout; generate a mesh of analysis elements within the model; determine one or more local properties of each of the analysis elements of the mesh based at least in part on intersections of the voxels and the analysis elements and based at least in part on the one or more properties of each of the voxels; receive use information for the part; predict a performance of the part based at least in part on an aggregation of the one or more local properties of each of the analysis elements and based at least in part on the use information; display the performance of the part overlapped with the model of the part and the layout of the voxels; make a comparison of the performance of the part with the predetermined performance; and selectively generate a new layout of the voxels based at least in part on the comparison.

Additional aspects and advantages of the present disclosure will become readily apparent to those skilled in this art from the following detailed description, wherein only illustrative embodiments of the present disclosure are shown and described. As will be realized, the present disclosure is capable of other and different embodiments, and its several details are capable of modifications in various obvious respects, all without departing from the disclosure. Accordingly, the drawings and description are to be regarded as illustrative in nature, and not as restrictive.

INCORPORATION BY REFERENCE

All publications, patents, and patent applications mentioned in this specification are herein incorporated by reference to the same extent as if each individual publication, patent, or patent application was specifically and individually indicated to be incorporated by reference. To the extent publications and patents or patent applications incorporated by reference contradict the disclosure contained in the specification, the specification is intended to supersede and/or take precedence over any such contradictory material.

BRIEF DESCRIPTION OF THE DRAWINGS

The novel features of the invention are set forth with particularity in the appended claims. A better understanding of the features and advantages of the present invention will be obtained by reference to the following detailed description that sets forth illustrative embodiments, in which the principles of the invention are utilized, and the accompanying drawings (also “Figure” and “FIG.” herein), of which:

FIG. 1 is flow chart depicting the overall optimization process of the 3D part to be printed;

FIG. 2 is diagrammatic illustration of an example disclosed system for making and/or analyzing printed parts;

FIGS. 3-5 are perspective illustrations of example tracks of material printed by the system of FIG. 2;

FIG. 5a is an enlarged illustration of a portion of FIG. 5;

FIG. 6 is a flowchart depicting an example method that may be performed by the system of FIG. 2 during the making and/or analyzing of the printed part;

FIG. 7 is a perspective illustration of an example disclosed part model that may be generated during analysis by the system of FIG. 2;

FIG. 8 is a perspective illustration of an example disclosed analytic element of the part model shown in FIG. 7;

FIG. 9 is a perspective illustration of the part model of FIG. 7 showing determined performance when intended use conditions are applied;

FIG. 10 is diagrammatic illustration of an exemplary disclosed system for making and/or analyzing printed parts;

FIG. 11 is a perspective illustration of an exemplary disclosed part model that may be generated during analysis by the system of FIG. 10;

FIG. 12 is a flowchart depicting an exemplary method that may be performed by the system of FIG. 10 during the making and/or analyzing of the printed composite part;

FIG. 13 is a perspective illustration of an exemplary disclosed analysis element of the part model shown in FIG. 11; and

FIG. 14 is a perspective illustration of the part model of FIG. 11 showing predicted performance when intended (or predetermined) use conditions are applied

FIG. 15 is a perspective illustration of a modeling diagram of large scale regions in which the entire geometry of the part is meshed;

FIG. 16 is a perspective illustration of a honeycomb infill pattern;

FIG. 17 is a perspective illustration of a grid infill pattern;

FIG. 18 is a perspective illustration of beam structural element made of infill and faceskins;

FIG. 19 is a perspective illustration of an example shear stress carried by infill material;

FIG. 20 is a perspective illustration of a harmonic infill pattern;

FIG. 21 is a perspective illustration of a sub-model of an infill material surrounded by large scale solid materials;

FIG. 22 is a perspective illustration of a principle stress plot using extremum stress vectors to drive the tool path trajectory of a particular part; and

FIG. 23 shows a computer control system that is programmed or otherwise configured to implement methods provided herein.

DETAILED DESCRIPTION

While various embodiments of the invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. Numerous variations, changes, and substitutions may occur to those skilled in the art without departing from the invention. It should be understood that various alternatives to the embodiments of the invention described herein may be employed.

The term “three-dimensional printing” (also “3D printing”), as used herein, generally refers to a process or method for generating a 3D part (or object). For example, 3D printing may refer to sequential addition of material layer or joining of material layers or parts of material layers to form a three-dimensional (3D) part or structure, in a controlled manner (e.g., under automated control). In the 3D printing process, the deposited material can be fused, sintered, melted, bound or otherwise connected to form at least a part of the 3D object. Fusing the material may include melting or sintering the material. Binding can comprise chemical bonding. Chemical bonding can comprise covalent bonding. Examples of 3D printing include additive printing (e.g., layer by layer printing, or additive manufacturing). The 3D printing may further comprise subtractive printing.

The term “part,” as used herein, generally refers to an object. A part may be generated using 3D printing methods and systems of the present disclosure. A part may be a portion of a larger part or object, or an entirety of an object. A part may have various form factors, as may be based on a model of such part. Such form factors may be predetermined.

The term “voxel,” as used herein, generally refers to a value on a regular grid in three-dimensional (3D) space. A voxel may have various dimensions in 3D space. A voxel may have volume. A voxel may have a unit volume. A voxel may have various shapes and sizes. In some examples, a voxel has a shape that is a sphere, pyramid (e.g., square-based pyramid or triangle-based pyramid), cube, cuboid, cylinder, cone, hexagonal prism, triangle prism, or a partial shape or a combination of shapes thereof. In some cases, in 3D printing, a voxel represents an individual fiber of a 3D printed part.

Examples of 3D printing methodologies comprise extrusion, wire, granular, laminated, light polymerization, or power bed and inkjet head 3D printing. Extrusion 3D printing can comprise robo-casting, fused deposition modeling (FDM) or fused filament fabrication (FFF). In some cases, the 3D printing may be performed without extrusion. For example, beads may be deposited (e.g., in FFF) in a manner that does not involve extrusion. Wire 3D printing can comprise electron beam freeform fabrication (EBF3). Granular 3D printing can comprise direct metal laser sintering (DMLS), electron beam melting (EBM), selective laser melting (SLM), selective heat sintering (SHS), or selective laser sintering (SLS). Power bed and inkjet head 3D printing can comprise plaster-based 3D printing (PP). Laminated 3D printing can comprise laminated object manufacturing (LOM). Light polymerized 3D printing can comprise stereo-lithography (SLA), digital light processing (DLP) or laminated object manufacturing (LOM).

3D printing may be performed using various materials. In some examples, a material that may be used in 3D printing includes a polymeric material, elemental metal, metal alloy, a ceramic, an allotrope of elemental carbon, or a combination thereof. The allotrope of elemental carbon may comprise amorphous carbon, graphite, graphene, diamond, or fullerene. The fullerene may be selected from the group consisting of a spherical, elliptical, linear, and tubular fullerene. The fullerene may comprise a buckyball or a carbon nanotube. The material may comprise an organic material, for example, a polymer or a resin. The material may comprise a solid or a liquid. The solid material may comprise powder material. The powder material may be coated by a coating (e.g., organic coating such as the organic material (e.g., plastic coating)). The powder material may comprise sand. The material may be in the form of a powder, wire, pellet, or bead. The material may have one or more layers. The material may comprise at least two materials. In some cases, the material includes a reinforcing material (e.g., that forms a fiber). The reinforcing material may comprise a carbon fiber, Kevlar®, Twaron®, ultra-high-molecular-weight polyethylene, or glass fiber.

The term “stiffness-contributing portion,” as used herein, generally refers to an element that provides structural support to a part. A stiffness-contributing portion may be a fiber. The fiber may be continuous or discontinuous. The fiber can include one or more strands, such as one or more strands of a polymeric material. The fiber may include a plurality of strands.

FIG. 1 shows a flow chart illustrating the overall optimization process of a 3D part to be printed. The synthesis of a three-dimensional part can include overall design goals for customer parts, target weight, loading conditions, deflection and stress margins-of-safety requirements, determination of candidate design topology and tool path, optimization to determine improved topology, optimization to determine improved tool path, and slicing of a new geometry based on improved topology and improved tool path.

The flow chart diagram illustrates a staggered and iterative approach to the optimization. Prior to printing, a computer aided design (CAD) file 101 may be evaluated to determine the initial topology 103 of the part. After determining the topology of the part, a tool path 104 may be generated (e.g., by slicing or partitioning) by a tool path generator. In some cases, an algorithm, such as analytical finite element analysis (AFEA), may be performed to determine the part geometry and stress parameters 106. Initial material data and design requirements 102 may be inputted as additional factors for AFEA. The part may then be optimized to determine the improved tool path and topology 107. If the user's design requirements are met and optimized 108, then the optimized toolpath 109 may be used to print the part 110. If the design requirements are not met and not optimized 108, then the results 105 are sent back to the tool path generator 104 for another iteration of the optimization.

The optimizations for topology and material orientation (e.g., tool path) can be staggered. The optimizations for topology and material orientation can be accomplished separately in order to improve computational speed. For example, the topology optimization may be employed at most about 1 time, at most about 2 times, at most about 3 times, at most about 4 times, or at most about 5 times. Alternatively, such optimization may be employed at least 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, or more times. However, the material orientation, density and robot tool path are closely coupled, and, the optimum tool path as predicted by the structural optimization may not be performed by a robot. As a result, more iterations may be performed until the optimization converges meet acceptable structural performance criteria while being within the robots tool path capability. Despite the optimization being a staggered approach, the optimization may also comprise performing the material orientation, material density and topology in a fully coupled manner.

FIG. 2 illustrates an example system 10, which may be used to make and/or analyze a part 12 having any desired shape, size, and structure. System 10 may include, among other things, a printer 14 and at least one computing device 15. Printer 14 may be configured to create part 12 under the guided control of computing device 15, for example by way of an additive manufacturing process. Although a reinforced filament fusion (RFF) process will be described below as one example of how part 12 may be created or generated, other processes may alternatively be utilized for this purpose. Examples of methods, systems and materials that may be used to create or generate objects or parts herein, including part 12, are provided in U.S. Patent Publication Nos. 2014/0232035, 2016/0176118, and U.S. patent application Ser. Nos. 14/297,185, 14/621,205, 14/623,471, 14/682,067, 14/874,963, 15/069,440, 15/072,270, 15/094,967, each of which is entirely incorporated herein by reference.

Printer 14 may be comprised of components that are controlled to create part 12 layer-by-layer using RFF technology. Specifically, printer 14 may include a support 16, a drive 18, and one or more heads 20. Each head 20 may be coupled to support 16 via drive 18. In the context of FIG. 2, drive 18 is an overhead gantry capable of moving head 20 in multiple directions during fabrication of part 12. Although drive 18 is shown as being capable of 3-axis movement, it is contemplated that any other type of drive 18 (e.g., a robotic arm, an arm/gantry combination, etc.) capable of moving head 20 in the same or a different manner may also be utilized, if desired.

Each head 20 (only one shown in FIG. 2, for clarity) may be configured to discharge at least a matrix material. For the purposes of this disclosure, a matrix material may be any material that can be discharged from head 20 and include, for example, a resin, a polymer, concrete, a metal slurry, etc. The matrix material may be a singular homogenous material. As an alternative, the matrix material may be mixed with, contain, or otherwise coat one or more reinforcements (e.g., continuous or chopped fibers, such as carbon fibers, glass fibers, metallic fibers, etc.). The matrix material and the fiber(s) may be supplied to head 20 from a common source 22 (as a fiber core coated with a solid thermoplastic sleeve). As an alternative, the matrix material and fiber(s) may be provided separately. The matrix material may be supplied in a solid, plastic, or liquid state, and head 20 may be capable of liquefying (e.g., melting) the matrix material. The fiber(s) may be coated with the matrix material before and/or while passing through head 20. As the matrix-coated reinforcements(s) discharge from head 20, the matrix material may harden.

Drive 18 may move head 20 in a particular trajectory (e.g., a trajectory corresponding to an intended shape and size of part 12) at the same that the matrix-coated fiber(s) discharge from head 20, such that continuous tracks T of matrix-coated fiber(s) are formed along the trajectory. These tracks T of matrix-coated fiber(s) can be laid adjacent and/or on top of each other while the matrix is still in a liquid or semi-liquid state. The adjacent tracks T of matrix-coated fiber(s) form a connected layer, and the overlapping layers are built up to form part 12.

Example tracks T are illustrated in FIGS. 3-5. In particular, FIG. 3 illustrates an example track T having three continuous fibers F coated in a matrix material M. It is contemplated that track T of FIG. 2 may have any number of fibers F (e.g., only one), and that the fibers F may be radially dispersed with the matrix M or located at a general center thereof. FIG. 4 illustrates another example track T having chopped fibers F coated in matrix material M. It is contemplated that track T of FIG. 3 may have any number and lengths of fibers F, and that the fibers F may be radially dispersed with the matrix M. FIG. 5 illustrates another example track T, which does not include any fibers (i.e., that includes only the matrix material M).

It has been determined that a trajectory of portions of the material that make up each of the tracks T shown in FIGS. 3-5 may contribute to a characteristic (e.g., a stiffness) of part 12. In FIG. 3, the stiffness-contributing portions are the continuous fibers F. In particular, the continuous fibers F, because of the way in which they are fed through head 20 (referring to FIG. 2) and deposited within elongated tracks T, are generally aligned with the tool path of head 20. This general alignment may function to increase a stiffness of tracks T in an axial direction. In FIG. 4, the stiffness-contributing portions are the chopped fibers F. Specifically, although the chopped fibers F of FIG. 3 may not be as aligned with the tool path of head 20 as the continuous fibers F may be (e.g., because of their shorter lengths and disconnected nature), the chopped fibers F may still align somewhat with the tool path because of the way in which the chopped fibers F are fed through head 20 (referring to FIG. 3). In some cases, the chopped fibers F have been shown to align by as much as 75-90% with the tool path of head 20. This general alignment, like the alignment of the continuous fiber F, may also function to increase a stiffness of tracks T in an axial direction. In FIG. 5, the stiffness-contributing portions are polymer chains PC (see FIG. 5a ) that make up the matrix M. In particular, the polymer chains PC, like the chopped fibers F, may still be caused to generally align with the tool path of head 20 during flow of the matrix M flows through head 20. This general alignment, like the alignment of the continuous fiber F and the chopped fibers F, may also function to increase a stiffness of tracks T in an axial direction. It should be noted that, although not shown in FIGS. 3 and 4, the polymer chains PC may still exist and contribute to the stiffness of tracks T, along with the continuous and/or chopped fibers F.

The alignment of the continuous fibers, chopped fibers, and polymer chains, along with properties of the matrix, properties of the fiber(s), a ratio of fiber volume-to-matrix volume within each track, etc., may have an effect on a performance (e.g., a strength, a deformation, a deflection, etc.) of part 12. Accordingly, the performance of part 12 may be selectively adjusted by adjusting the trajectory of head 20 during layer formation and/or adjusting the properties of the matrix, the properties of the fiber(s), the ratio of fiber area-to-matrix area, etc.

Any number of separate computing devices 15 may be used to control the trajectory of head 20 during formation of part 12 and/or to analyze the performance characteristics of part 12 before and/or after formation. Computing device 15 may include a display 24, one or more computer processors (“processors”) 26, any number of input/output (“I/O”) devices 28, and one or more memories 30 for storing programs 32 and data 34. Programs 32 may include, for example, any number of analysis and/or printing apps 36 and an operating system 38.

Display 24 of computing device 15 may include a liquid crystal display (LCD), a light emitting diode (LED) screen, an organic light emitting diode (OLED) screen, and/or another display device. Display 24 may be used for display of data under the control of processor 26.

Computer processor (“processor”) 26 may be a single or multi-core processor, in some cases configured with virtual processing technologies, and use logic to simultaneously execute and control any number of operations. Processor 26 may be configured to implement virtual machine or other technologies to execute, control, run, manipulate, and store any number of software modules, applications, programs, etc. In addition, in some cases, processor 26 may include one or more specialized hardware, software, and/or firmware modules (not shown) specially configured with particular circuitry, instructions, algorithms, and/or data to perform functions of the disclosed methods. It is appreciated that other types of processor arrangements may be implemented that provide for the capabilities disclosed herein.

Memory 30 can be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible and/or non-transitory computer-readable medium that stores one or more executable programs 32, such as analysis and/or printing apps 36 and operating system 38. Common forms of non-transitory media include, for example, a flash drive, a flexible disk, a hard disk, a solid state drive, magnetic tape or other magnetic data storage medium, a CD-ROM or other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or other flash memory, NVRAM, a cache, a register or other memory chip or cartridge, and networked versions of the same.

Memory 30 may store instructions that enable processor 26 to execute one or more applications, such as analysis and/or printing applications 36, operating system 38, and any other type of application or software available or executable on computer systems. Alternatively or additionally, the instructions, application programs, etc. can be stored in an internal and/or external database (e.g., a cloud storage system—not shown) that is in direct communication with computing device 15, such as one or more databases or memories accessible via one or more networks (not shown). Memory 30 can include one or more memory devices that store data and instructions usable to perform one or more features provided herein. Memory 30 can also include any combination of one or more databases controlled by memory controller devices (e.g., servers, etc.) or software, such as document management systems, Microsoft SQL databases, SharePoint databases, Oracle™ databases, Sybase™ databases, or other relational databases.

Computing device 15 may be communicatively connected to one or more remote memory devices (e.g., remote databases—not shown) through a network. The remote memory devices can be configured to store information that computing device 15 can access and/or manage. By way of example, the remote memory devices may be document management systems, Microsoft SQL database, SharePoint databases, Oracle™ databases, Sybase™ databases, Cassandra, HBase, or other relational or non-relational databases or regular files. Systems and methods provided herein, however, are not limited to separate databases or even to the use of a database.

Programs 32 may include one or more software or firmware modules causing processor 26 to perform one or more functions disclosed herein. Moreover, processor 26 can execute one or more programs located remotely from computing device 15. For example, computing device 15 can access one or more remote programs that, when executed, perform one or more functions disclosed herein. In some cases, programs 32 stored in memory 30 and executed by processor 26 can include one or more of analysis and/or printing apps 36 and operating system 38. Analysis and/or printing apps 36 may cause processor 26 to perform one or more functions of the disclosed methods.

Operating system 38 may perform operating system functions when executed by one or more processors such as processor 26. By way of example, operating system 38 may include Microsoft Windows™, Unix™, Linux™, OSX™, and IOS™ operating systems, Android™ operating systems, or another type of operating system 38. Accordingly, disclosed embodiments can operate and function with computer systems running any type of operating system 38.

I/O devices 28 may include one or more interfaces for receiving signals or input from a user and/or printer 14, and for providing signals or output to printer 14 that allow part 12 to be printed. For example, computing device 15 can include interface components for interfacing with one or more input devices, such as one or more keyboards, mouse devices, and the like, which enable computing device 15 to receive input from a user (not shown).

FIG. 6 is flow chart depicting a method 200 that may be implemented by computing device 15 to fabricate part 12 via printer 14 and/or to analyze part 12. FIGS. 7-9 represent virtual models of part 12 that may be generated by computing device 15 when following method 200. The virtual model may be a computer-generated model design of the part 12.

The disclosed systems and methods may be used to manufacture and/or analyze high-performance parts (e.g., parts with or without reinforcing fibers) of any shape and size. Performance analysis of the parts may be performed by the disclosed system before, during, and/or after fabrication. In this manner, the parts may be produced with a higher level of confidence regarding performance in an intended application and with less time and expense. Operation of system 10 will now be described in detail, with respect to method 200 shown in FIG. 6.

As can be seen in FIG. 6, information regarding part 12 may be received into system 10 (Operation 210). This information may include, among other things, a three-dimensional model 40 (shown in FIG. 7) of part 12. The three-dimensional model 40 may be a model design of the part 12, such as a computer-generated design of the part 12. In the example model 40 shown in FIG. 7, the matrix used to make part 12 is represented by a symbol M, while the tracks T correspond to a center-line trajectory. Model 40 may be received as a collection of data that is interpretable by processor 26 using programs 32 (e.g., app 36), the code defining physical attributes (e.g., shape and size) of part 12. Model 40 may be received by way of I/O devices 28 or a network connection, retrieved by processor 26 from memory 30, and/or generated and modified by processor 26 using programs 32.

Processor 26 may use programs 32 to create a virtual mesh of connected analytic elements 42 (shown in FIGS. 7 and 8) within model 40 (Operation 220). Analytic elements 42 may be three-dimensional tetrahedrons. It is contemplated, however, that any size and number of two- and/or three-dimensional analytic elements 42 may be assembled to form the virtual mesh. The analytic elements 42 may have various shapes, such as, for example, circles, triangles, squares, quadrilaterals, tetrahedrons, quadrilateral pyramids, triangular prisms, hexahedrons, or partial shapes or combinations of shapes thereof.

Information regarding an intended (or predetermined) use of part 12 (e.g., constraints—shown on the left of FIG. 9, and forces—shown on the right in FIG. 9) and material properties of part 12 (e.g., matrix properties, fiber properties, matrix/fiber ratios) and tool path trajectories may be received by processor 26 (Operation 230). The material properties may include a type of material, viscosity of the material, melting point of the material, stiffness of the material, Young's moduli of the material, composition of the material, Poissson's ratios, shear moduli, density, coefficients of thermal expansion, thermal conductivity, specific heat, and viscoelastic properties. In an example, the intended or predetermined use of the part includes a functional attribute of the part, such as use of the part in a larger object, structure or system, or use of the part as a standalone object. Like model 40, the intended use and material properties information of part 12 may be received by way of I/O devices 28 or a network connection, retrieved by processor 26 from memory 30, and/or created and modified by processor 26 using programs 32. For example, the constraints, forces, matrix properties, fiber properties, and matrix/fiber ratios may be manually input by a user of computing device 15. One or more of the properties may be derived by stress testing of standardized bars, and then stored for later retrieval during analysis.

As shown in FIGS. 7 and 8, the stiffness-contributing portions (e.g., the continuous fibers, the chopped fibers, and/or the polymer chains) deposited in general alignment with the center-line of track T by head 20 during fabrication of part 12 may pass through each analytic element 42 differently. For example, some analytic elements 42 may contain a greater or lesser number of stiffness-contributing portions than other elements 42, and the stiffness-contributing portions may pass through the different analytic elements 42 at different locations and angles. This arrangement of stiffness-contributing portions within each analytic element 42 may provide each analytic element 42 with different local characteristics (e.g., stiffness). The local characteristics of each analytic element 42 may aggregate to produce global characteristics of part 12. Accordingly, in order to solve for the global characteristics of part 12, the arrangement (e.g., number, density, alignment, etc.) of stiffness-contributing portions within each analytic element 42 and the corresponding effect of the arrangement may first be determined.

A stiffness of the elements 42 scales with the number and/or distribution of stiffness-contributing portions. For example, a first element with a greater number of stiffness-contributing portions as compared to a second element may be more stiff than the second element. As an alternative or in addition, the orientation of individual stiffness-contributing portions relative to one another may determine the stiffness of the elements. In an example, the elements 42 include a plurality of stiffness-contributing portions that are parallel or substantially parallel to one another, which may yield a stiffness that is different than a scenario in which the stiffness-contributing portions are not parallel to another (e.g., the stiffness-contributing portions are perpendicular to one another).

The arrangement of fibers within each analytic element 42 may be represented as a set of intersection points (i.e., points where each fiber intersects each analytic element 42 and/or each other) and directional vectors. The intersection points and directional vectors may be determined as a function of the virtual mesh created at operation 220 and a tool path (intended or actual) of head 20. The tool path may be manually generated, automatically generated by processor 26 as a function of a size and shape of model 40 and known or predetermined capabilities of printer 14, and/or manually selected by the user from a listing of available tool paths that have been automatically generated. Tool path generation may take place at a Operation 240.

After receiving the intended use information, the material properties information, and the tool path information, processor 26 may be configured to determine performance characteristics of each analytic element 42 (Operation 250). This may include, among other things, solving for the locations of the intersection points and the directional vectors described above. This is solved based on 3D geometry based algorithms (e.g., creating a convex hull from intersection points between a tetrahedron and a hexahedron, and then subsequently computing a volume of the convex hull to determine a filament contribution to the stiffness of the element). In addition, processor 26 may use the intersection points, the directional vectors, and the fiber properties (e.g., an assumed rectangular, circular, or oval cross-sectional fiber area) to determine a volume of the fibers and a remaining volume of the matrix encompassed within each analytic element 42. Further, processor 26 may determine, based also on the intersection points, the directional vectors, the fiber properties (e.g., compressive and/or tensile stiffness), and the matrix properties, the combined contributions of the fibers and the matrix to a three-dimensional stiffness of each analytic element 42.

Processor 26 may then apply the intended use conditions (e.g., the constraints and forces received at operation 230) at corresponding nodes and/or surfaces of analytic elements 42 in the mesh of model 40 (see FIG. 6), and determine (e.g., predict) the global performance of part 12 based on an aggregated stiffness of each individual analytic element 42 (Operation 260). For example, as seen in FIG. 6, model 40 of part 12 is shown as being constrained at a left end, with a force of a particular magnitude and direction being applied at a right end. Processor 26 may yield results in the form of nodal displacements and element stresses. The nodal displacements and element stresses may then be translated into fiber displacement fields and stress fields, which can be shown overlaid with model 40 on display 24 (Operation 270). For example, model 40 is shown in FIG. 6 having a displacement of a particular distance in a direction generally aligned with the applied force direction. In addition, model 40 has been shaded and/or colored in FIG. 6 to illustrate stresses at different locations within part 12 that are caused by the displacement. The tool path generated at operation 240 may also be shown at this time, in connection with the displacement fields and/or stress fields.

The displacement and/or stress fields may be viewed in a variety of ways. For example, a user interface, such as a graphical user interface or web-based user interface, may be provided that includes a slider (e.g., an actual or virtual slider), which can be moved by a user (e.g., left to right) to generate a viewing control instruction. Based on the viewing control instruction, a virtual progression of part 12 may be generated showing how part 12 will be printed and corresponding displacement and/or stress fields inside of part 12. In other words, the predicted performance of part 12 may be shown overlapped with only a portion of the print head tool path on part 12, the portion corresponding to a position of the slider.

Processor 26 may be configured to implement an optimization operation using the results of operation 260. Specifically, processor 26 may be configured to determine if the predicted performance of part 12 is acceptable (Operation 270), and to selectively repeat method 200 using a different tool path (and corresponding fiber trajectories) when the predicted performance is unacceptable. For example, processor 26 may compare one or more predicted performance parameters (e.g. stress field and/or displacement field) to one or more design criteria (maximum displacement field, maximum stress field, etc.). When the comparison indicates that part 12 is likely to perform poorly, processor 26 may return to operation 240 and generate an alternative tool path. Control may then loop through operations 240-280 until acceptable part performance is determined, at which point processor 26 may cause printer 14 to fabricate part 12 using the corresponding tool path (Operation 290).

In some cases, while the part 12 is printed, the performance of the part may be determined and used to update the tool path. In principle, this may be used to optimize fabrication of the part 12.

FIG. 10 illustrates a system 1010, which may be used to make and/or analyze a part 1012 having any desired (or predetermined) shape, size, and structure. System 1010 may include, among other things, a printer 1014 and at least one computing device 1015. Printer 1014 may be configured to create part 1012 under the guided control of computing device 1015, for example by way of an additive manufacturing process. Although a stereolithography (SLA) process will be described below as one example of how part 1012 may be created or generated, other processes may be utilized for this purpose. Examples of methods, systems and materials that may be used to create or generate objects or parts herein, including part 1012, are provided in U.S. Patent Publication Nos. 2014/0232035, 2016/0176118, and U.S. patent application Ser. Nos. 14/297,185, 14/621,205, 14/623,471, 14/682,067, 14/874,963, 15/069,440, 15/072,270, 15/094,967, each of which is entirely incorporated herein by reference.

Printer 1014 may be comprised of components that are controlled to create part 1012 layer-by-layer using SLA technology. Specifically, printer 1014 may include a build chamber 1016, an elevator 1018 submerged within a photopolymer resin 1020, and an energy source 1022. During operation, elevator 1018 may selectively lower build platform 1024 a desired (or predetermined) distance into resin 1020, such that a specific thickness of resin 1020 coats build platform 1024 (and/or any previously fabricated portion(s) of part 1012). Energy source 1022 may then selectively generate a pattern within resin 1020 (e.g., by exposing select areas of resin 1020 to ultraviolet light) to produce individual voxels 1026 of solidified material that bond together to form component 1012.

Any number of separate computing devices 1015 may be used to control formation of part 1012 and/or to analyze performance characteristics of part 1012 before and/or after formation. Computing device 1015 may include a display 1025, one or more computer processors (“processors”) 1027, any number of input/output (“I/O”) devices 1028, and one or more memories 1030 for storing one or more executable programs 1032 and data 1034. Programs 1032 may include, for example, any number of analysis and/or printing applications 1036 and an operating system 1038.

Display 1025 of computing device 1015 may include a liquid crystal display (LCD), a light emitting diode (LED) screen, an organic light emitting diode (OLED) screen, and/or another display device. Display 1025 may be used for display of data under the control of processor 1027.

Computer processor (“processor”) 1027 may be a single or multi-core processor, in some cases configured with virtual processing technologies, and use logic to simultaneously execute and control any number of operations. Processor 1027 may be configured to implement virtual machine or other technologies to execute, control, run, manipulate, and store any number of software modules, applications, programs, etc. In addition, processor 1027 may include one or more specialized hardware, software, and/or firmware modules (not shown) specially configured with particular circuitry, instructions, algorithms, and/or data to perform functions of the disclosed methods. It is appreciated that other types of processor arrangements may be implemented that provide for the capabilities disclosed herein.

Memory 1030 can be a volatile or non-volatile, magnetic, semiconductor, tape, optical, removable, non-removable, or other type of storage device or tangible and/or non-transitory computer-readable medium that stores programs 1032, such as analysis and/or printing applications 1036 and operating system 1038. Common forms of non-transitory media include, for example, a flash drive, a flexible disk, a hard disk, a solid state drive, magnetic tape or other magnetic data storage medium, a CD-ROM or other optical data storage medium, any physical medium with patterns of holes, a RAM, a PROM, and EPROM, a FLASH-EPROM or other flash memory, NVRAM, a cache, a register or other memory chip or cartridge, and networked versions of the same.

Memory 1030 may store instructions that enable processor 1027 to execute one or more applications, such as analysis and/or printing applications 1036, operating system 1038, and any other type of application or software available or executable on computer systems. Alternatively or additionally, the instructions, application programs, etc. can be stored in an internal and/or external database (e.g., a cloud storage system—not shown) that is in direct communication with computing device 1015, such as one or more databases or memories accessible via one or more networks (not shown). Memory 1030 can include one or more memory devices that store data and instructions usable to perform one or more features provided herein. Memory 1030 can also include any combination of one or more databases controlled by memory controller devices (e.g., servers, etc.) or software, such as document management systems, Microsoft SQL databases, SharePoint databases, Oracle™ databases, Sybase™ databases, or other relational databases.

Computing device 1015 may be communicatively connected to one or more remote memory devices (e.g., remote databases—not shown) through a network. The remote memory devices can be configured to store information that computing device 1015 can access and/or manage. By way of example, the remote memory devices may be document management systems, Microsoft SQL database, SharePoint databases, Oracle™ databases, Sybase™ databases, Cassandra, HBase, or other relational or non-relational databases or regular files. Systems and methods provided herein, however, are not limited to separate databases or even to the use of a database.

Programs 1032 may include one or more software or firmware modules causing processor 1027 to perform one or more functions disclosed herein. Moreover, processor 1027 can execute one or more programs located remotely from computing device 1015. For example, computing device 1015 can access one or more remote programs that, when executed, perform one or more functions disclosed herein. In some cases, programs 1032 stored in memory 1030 and executed by processor 1027 can include one or more of analysis and/or printing applications 1036 and operating system 1038. Analysis and/or printing applications 1036 may cause processor 1027 to perform one or more functions of the disclosed methods.

Operating system 1038 may perform operating system functions when executed by one or more processors such as processor 1027. By way of example, operating system 1038 may include Microsoft Windows™, Unix™, Linux™, OSX™, and IOS™ operating systems, Android™ operating systems, or another type of operating system 1038. Accordingly, disclosed embodiments can operate and function with computer systems running any type of operating system 1038.

I/O devices 1028 may include one or more interfaces for receiving signals or input from a user and/or printer 1014, and for providing signals or output to printer 1014 that allow part 1012 to be printed. For example, computing device 1015 can include interface components for interfacing with one or more input devices, such as one or more keyboards, mouse devices, and the like, which enable computing device 1015 to receive input from a user (not shown).

As shown in FIG. 11, component 1012 may be printed to have any number of voxels 1026 with any combination of shape, size, location, orientation, material, and property. For example, although voxels 1026 are shown as cubes, voxels 1026 may alternatively be spheres, pyramids, or another shape of the same or different sizes. In addition, each voxel 1026 may be fabricated from the same material or from multiple different materials. Further, properties (e.g., a density, a hardness, a stiffness, a conductivity, a reactivity, etc.) of each voxel 1026 may be the same or different.

It has been determined that a layout of specific voxels 1026 within part 1012 may contribute to an overall performance of part 1012. For example, a greater concentration of a first configuration of voxels 1026 (e.g., a first material, size, and/or shape of voxels 1026 having a first density) within a particular location in part 1012 may provide a first property to that location, while a greater concentration of a second configuration of voxels 1026 (e.g., a second material, size, and/or shape of voxels 1026 having a second density) within another location in part 1012 may provide a second property to that location. Accordingly, the overall performance of part 1012 may be selectively adjusted by adjusting the concentrations, locations, and/or configurations of voxels 1026 used within part 1012.

FIG. 12 is a flow chart depicting a method 1200 that may be implemented by computing device 1015 to fabricate part 1012 via printer 1014 and/or to analyze part 1012. FIGS. 11, 13, and 14 represent virtual models of part 1012 that may be generated by computing device 1015 when following method 1200. The virtual model may be a computer-generated model design of the part 1012.

The disclosed system may be used to manufacture and/or analyze high-performance parts of any shape and size. Performance analysis of the parts may be performed by the disclosed system before, during, and/or after fabrication. In this manner, the parts may be produced with a higher level of confidence regarding performance in an intended (or predetermined) application and with less time and expense. Operation of system 1010 will now be described in detail, with respect to method 1200 shown in FIG. 12.

As can be seen in FIG. 12, information regarding part 1012 may be received into system 1010 (operation 1210). This information may include, among other things, a three-dimensional model 1140 (shown in FIG. 11) of part 1012. The three-dimensional model 1140 may be a model design of the part 1012, such as a computer-generated design of the part 1012. Model 1140 may be received as a collection of code that is interpretable by processor 1027 using programs 1032 (e.g., app 1036), the code defining physical attributes (e.g., shape and size) of part 1012. Model 1140 may be received by way of I/O devices 1028 or a network connection, retrieved by processor 1027 from memory 1030, and/or generated and modified by processor 1027 using programs 1032.

Processor 1027 may use programs 1032 to create a virtual mesh of connected analytic elements 1142 (shown in FIGS. 11 and 13) (also “analysis elements” herein) within model 1140 (operation 1220). Analytic elements 1142 may be three-dimensional tetrahedrons. It is contemplated, however, that any size and number of two- and/or three-dimensional analytic elements 1142 may be assembled to form the virtual mesh. The analytic elements 1142 may have various shapes, such as, for example, circles, triangles, squares, quadrilaterals, tetrahedrons, quadrilateral pyramids, triangular prisms, hexahedrons, or partial shapes or combinations of shapes thereof.

Information regarding an intended (or predetermined) use of part 1012 (e.g., constraints—shown on the left of FIG. 14, and forces—shown on the right in FIG. 14) and a desired performance of part 1012 (e.g., a desired weight, a desired stiffness, a maximum deflection, a minimum breaking force, etc.) may be received by processor 1027 (operation 1230). The material properties may include a type of material, viscosity of the material, melting point of the material, stiffness of the material, Young's moduli of the material, composition of the material, Poisson's ratios, shear moduli, density, coefficients of thermal expansion, thermal conductivity, specific heat, and viscoelastic properties. In an example, the intended or predetermined use of the part includes a functional attribute of the part, such as use of the part in a larger object, structure or system, or use of the part as a standalone object. Like model 1140, the intended use and desired performance information of part 1012 may be received by way of I/O devices 1028 or a network connection, retrieved by processor 1027 from memory 1030, and/or created and modified by processor 1027 using programs 1032. For example, the constraints, forces, and/or performance parameters may be manually input by a user of computing device 1015.

Computing device 1015 may be configured to pixelate the model of part 1012 received, retrieved, and/or generated at operation 1210. In particular, processor 1027 may use programs 1032 to generate a virtual layout of voxels 1026 within model 1140 of part 1012 (operation 1240). Part 1012 may be created in an infinite number of different ways via any combination of different voxels 1026 having different materials, shapes, sizes, locations, orientations, and/or properties, and processor 1027 may generate at least one particular combination at operation 1240 for use in analyzing part 1012. The voxel layout may be automatically generated as a function of the size and shape of model 1140, capabilities of printer 1014, and/or the desired performance of part 1012. It is contemplated that the particular layout of voxels 1026 automatically generated by processor 1027 at operation 1240 may be manually overridden and/or adjusted, if desired before continuing to operation 1250. For example, the voxel layout may be manually selected by the user (e.g., from a listing of available layouts that have been automatically generated) and/or selectively modified after automatic selection.

The method may be fully automated. The method may be based on optimization (e.g., constrained optimization) to fully optimize the performance of the part subject to certain constraints, or, use combined performance indices which may weigh the cost of fully optimizing the part based on performance with other considerations, such as, for example time to manufacture and/or cost of final product.

As shown in FIGS. 11 and 13, the various voxels 1026 within a particular layout generated by processor 1027 to makeup model 1140 of part 1012 may pass through each analytic element 1142 differently. For example, some analytic elements 1142 may contain a greater or lesser number of voxels 1026 of a particular configuration than other elements 1142, and the voxels 1026 may be arranged differently within each analytic element 1142 (e.g., at different locations and/or orientations). These varying arrangements of different voxels 1026 within each analytic element 1142 may provide each analytic element 1142 with different local characteristics (e.g., hardness, stiffness, conductivity, reactivity, etc.). The local characteristics of each analytic element 1142 may aggregate to produce global characteristics of part 1012. Accordingly, in order to solve for the global characteristics of part 1012, the arrangement (e.g., number, shape, size, location, orientation, configuration, etc.) of voxels 1026 within each analytic element 1142 and the corresponding effect of the arrangement may first be determined.

In some examples, a stiffness of the elements 1142 scales with the number and/or distribution of stiffness-contributing portions. For example, a first element with a greater number of stiffness-contributing portions as compared to a second element may be more stiff than the second element. As an alternative or in addition, the orientation of individual stiffness-contributing portions relative to one another may determine the stiffness of the elements. In an example, the elements 1142 include a plurality of stiffness-contributing portions that are parallel or substantially parallel to one another, which may yield a stiffness that is different than a scenario in which the stiffness-contributing portions are not parallel to another (e.g., the stiffness-contributing portions are perpendicular to one another).

The arrangement of voxels 1026 within each analytic element 1142 may be represented as a set of intersections (e.g., points, lines and/or planes where each voxel 1026 intersects a border of each analytic element 1142 and/or each other) and directional vectors corresponding to the properties of each individual voxel 1026. The intersections and directional vectors may be determined as functions of the virtual mesh created at operation 1220 and the particular layout of voxels 1026 generated by processor 1027.

After receiving the intended use information, the desired performance information, and the voxel layout information, processor 1027 may be configured to determine performance characteristics of each analytic element 1142 (operation 1250). This may include, among other things, solving for the locations of the intersections and the directional vectors described above. This may be solved based at least in part on 3D geometry based algorithms (e.g., creating a convex hull from intersection points between a tetrahedron and a hexahedron, and then subsequently computing a volume of the convex hull to determine a voxel contribution to performance characteristic of the element). In addition, processor 1027 may determine, based at least in part on the intersections and the directional vectors, the combined contributions of each voxel 1026 to a three-dimensional characteristic (e.g., hardness, stiffness, conductivity, reactivity, etc.) of each analytic element 1142.

Processor 1027 may then apply the intended use conditions (e.g., the constraints and forces received at operation 1230) to corresponding nodes and/or surfaces of analytic elements 1142 in the mesh of model 1140 (see FIG. 14), and predict the global performance of part 1012 based at least in part on an aggregated characteristic of each individual analytic element 1142 (operation 1260). For example, as seen in FIG. 14, model 1140 of part 1012 is shown as being constrained at a left end, with a force of a particular magnitude and direction being applied at a right end. Processor 1027 may yield results in the form of nodal displacements and element stresses. The nodal displacements and element stresses may then be translated into displacement fields and stress fields, which can be shown overlaid with model 1140 on display 1025 (operation 1270). For example, model 1140 is shown in FIG. 14 as having a displacement of a particular distance in a direction generally aligned with the applied force direction. In addition, model 1140 has been shaded and/or colored in FIG. 14 to illustrate stresses at different locations within part 1012 that are caused by the displacement. The voxel layout generated at operation 1240 may also be shown at this time, in connection with the displacement fields and/or stress fields.

The voxel layout may determine or dictate a path of a tool used to generate the part 1012. For example, the voxel layout may define the path of the tool for generating the part 1012. Such layout and path may be updated.

The displacement and/or stress fields may be viewed in a variety of ways. For example, a graphical user interface may be provided that includes a slider (e.g., an actual or virtual slider), which can be moved by a user (e.g., left to right) to generate a viewing control instruction. Based on the viewing control instruction, a virtual progression of part 1012 may be generated showing how part 1012 will be printed and corresponding displacement and/or stress fields inside of part 1012. In other words, the predicted performance of part 1012 may be shown overlapped with a portion of the voxel layout of part 1012 or only a portion of the voxel layout of part 12, the portion corresponding to a position of the slider. The predicted performance may be an estimated performance. The predicted performance may be an estimated performance or performance based on known or predetermined criteria for particular classes of material implemented into programs 1032, such as, e.g., failure criteria for composite materials.

Processor 1027 may be configured to implement an optimization routine using the results of operation 1260. Specifically, processor 1027 may be configured to determine if the predicted performance of part 1012 is acceptable (operation 1280), and to selectively repeat method 1200 using a different layout of voxels 1026 when the predicted performance is unacceptable. For example, processor 1027 may compare one or more predicted performance parameters (e.g., the stress field and/or the displacement field) to one or more desired performance criteria received at operation 1230. When the comparison indicates that part 1012 is likely to perform poorly, processor 1027 may return to operation 1240 and generate an alternative voxel layout. The alternative voxel layout may be based on analysis predictions combined with manufacturing capabilities, and may be determined manually or based on optimization techniques provided by programs 1032. Control may then loop through operations 1240-1280 until acceptable part performance is determined, at which point processor 1027 may cause printer 1014 to fabricate part 1012 using the corresponding voxel layout (operation 1290).

In some cases, while the part 1012 is printed, the performance of the part may be determined and used to update the layout of voxels 1026. This may be used to optimize fabrication of the part 1012. In some examples, the layout of voxels 1026 may yield a tool path for the part 1012 being printed. See, e.g., U.S. patent application Ser. No. 15/232,767, which is entirely incorporated herein by reference.

In another aspect, the disclosure provides a method for performing analysis on a part for printing. Upon receiving, in computer memory, a computer model of the part, the computer model of the part may be partitioned. The part can be partitioned into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of the material used for forming the part to yield a partitioned computer model. At least a first mesh may be generated in the first region and at least a second mesh may be generated in a second region to yield a mesh array in the partitioned computer model. The mesh array may be used to determine one or more properties of the part. The mesh array can include a first mesh and a second mesh. One or more properties may be analyzed to determine whether the one or more properties meet a predetermined value(s). The mesh array may be used to generate a print head toolpath usable to print the part if one or more properties meet a predetermined value(s). The print head toolpath can be used to print the part. The part may be printed using fused filament fabrication. The first mesh may comprise a plurality of meshes. Partitioning the computer model may comprise slicing the computer model. The method for performing analysis on a part for printing may further comprise electronically outputting the print head tool path on a user interface. The print head toolpath on a user interface can be electronically outputted on a graphical user interface.

Prior to printing the part, a computer aided design (CAD) model can be optimized based on specified requirements. For example, the CAD model may comprise a geometry “envelop”. A geometry envelop may be an initial shell design of the 3D part comprising design requirements and geometric features. The geometry of the CAD model may be received by way of I/O devices. Design requirements can be selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.

The CAD model can comprise one or more features of the part that is selected from the group consisting of corners, edges, surfaces, solids, ridges, salient points, and image texture. The geometric features can define the form, fit, and function of the 3D printed part. The geometry envelop may have flexibility, for example, certain regions that are not critical to the form, fit, or function of the part may be adjusted to improve performance or optimize the part's properties.

The CAD model may be initially partitioned according to user input and built in tool path generator rules to produce numerical control programming codes of the partitioned computer model. Partitioning can generate one or more parameters for printing the part. One or more parameters may be selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. Partitioning can generate one or more numerical control programming code of the partitioned computer model. Numerical control programming code can comprise G-code files and intermediate files. G-code files may be a numerical control programming language and can be used in computer-aided manufacturing as a way of controlling automated machine tools. The actions controlled by the G-code may comprise rapid movement, controlled feed in an arc or straight line, series of controlled feed movements, switch coordinate systems, and a set of tool information. Intermediate files may comprise supplemental files and tools for a primary build output. Additionally, intermediate files can comprise automatically generated source files or build output from helper tools. The information from the G-code files and the intermediate files may be extracted to determine the geometry of the 3D printed part.

Prior to 3D printing a part, a user may select for a solid fill pattern or a sparse fill pattern. A solid fill design may comprise block type structures with continual density throughout the object. The solid fill model can be an exact replica of what a printer can create when the part is processed in solid design. The solid fill option can be advantageous if part functionality and structural integrity are important factors for the object.

Following slicing, the part can be partitioned into at least a first region comprising one or more voids. FIG. 15 illustrates a modeling diagram of large scale regions in which the entire geometry of the part 1500 is meshed. The modeling diagram can comprise areas 1501 and 1502. Area 1501 represents one of the voids in the geometry that is not meshed. The voids may be associated with infill material. Additionally, the voids may be a part of the overall geometry. Area 1502 indicates one of the large scale solid material regions. The large scale regions may be modeled using standard continuum solid elements, such as TET10 elements. Alternatively, the large scale regions may not contain voids. The solid material region 1502 comprises fibers moving in a specified direction and intersections with elements used to determine the material properties. By computing the intersections of the tool path with individual elements, the fiber direction dependent material properties may be determined. The fiber direction dependent material property may be one or more properties selected from the group consisting of a stress-strain matrix, a thermal conductivity matrix, or electrical conductivity matrix. The determination of the fiber direction dependent material properties can be performed by computing the intersections of the tool path with individual elements.

Alternatively, prior to 3D printing, a user may select for a sparse fill pattern. A sparse fill design does not produce a solid model. When viewed from the exterior, the printed part may still look entirely solid. However, the inside may comprise a web like pattern that can act to maintain the strength of the printed part. The pattern may also be a honeycomb structure. The sparse fill method comprises advantages including reduced weight, reduced cost, reduced build time, convenient manipulation of mechanical properties through design, advanced aesthetics without additional CAD work, and self-supporting parts. Since the sparse infill patterns can result in self-supporting parts, there one or more post processing operations may be employed, for example, cleaning of the support material. In addition, the sparse fill method can be used for strengthening porous objects by injecting resins through fill compositing.

Following slicing, the part can be partitioned into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material used to form the part to yield a partitioned computer model. The second region can either enclose and/or connect to at least a portion of the first region. One or more of a first mesh may be generated in the first region and one or more of a second mesh may be generated in a second region to yield a mesh array in the partitioned computer model. The first mesh may be at a smaller scale than the second mesh. The first mesh may comprise infill regions. The second mesh may comprise large scale regions. The large scale regions can be meshed and processed with a tool path generator. Partitioning can comprise slicing the part into a plurality of layers. Partitioning may determine the toolpath based upon built in rules with the user input. The method for performing analysis on a part for printing may further comprise performing finite element analysis on the toolpath. The toolpath may further be subjected to an intersection algorithm. The material properties of the second mesh can be determined by an intersection algorithm.

The first mesh may be generated for an infill pattern of a part to determine material properties of the infill regions of the part. The infill pattern may be a repeating pattern. The first mesh can comprise sub-meshes. The first mesh may comprise a sub-mesh for at least one repeating unit of the repeating pattern. The infill regions can represent a percentage that indicates the amount of material a solid model should be filled with when printed. The percentage can determine the strength of the material. The infill can be found in the interior structure of a 3D printed model. Oftentimes, to prevent material waste, a 3D part may be printed with an inner mesh structure rather than a solid interior. An infill percentage (%) may be recorded, which measures the amount of material an object's volume is filled with inside. The infill may be at least about 20%, 25%, 30%, 35%, 40%, 45%, 50%, 55%, 60%, 65%, 70%, 75%, 80%, 85%, or 90% infill. The infill regions can be regions where small scales make them impractical to automatically mesh. The small scale can be associated with the thickness of the infill material. The criteria to define what constitutes infill versus large scale solid regions can be quantified through metrics contained in the “meta” data associated with the intermediate and/or G-code files. Metrics for determining infill can include infill percentage, layer height, and infill pattern.

Repeating patterns of the infill can also be identified from meta data. The infill patterns may be a pattern drawn to fill the 3D object. The infill pattern may be selected from the group consisting of honeycomb, grid, harmonic, linear, diagonal, rectilinear, concentric, Hilbert curve, Archimedean chords, octagram spiral, and any combination thereof. A diagonal infill pattern may be a linear infill pattern tilted at least about 20°, at least about 25°, at least about 30°, at least about 35°, at least about 40°, or at least about 45°, FIG. 16 illustrates an example of a honeycomb infill. FIG. 17 illustrates an example of a grid infill. The infill may be covered with a solid material, such as the face skin in FIG. 17. FIG. 18 shows an example of a structural element of length L comprising infills and face skins. A three dimensional structure with the structure illustrated in FIG. 18 may result in strong, stiff, and lightweight structural elements. The face skin may have a thickness of t_(f) and the distance between the face skins may be h_(c). Along the exterior of the top face skin, external forces (F/2) may be exerted at two points, A and B, separated by a distance d. Along the exterior of the bottom face skin, external counter forces may be exerted at points C and D. The exterior forces can result in a response from the internal forces exerted by the material of the infill pattern, represented as sheer stress (σ_(zx)) in FIG. 19. A change in direction and magnitude of the force exerted along points A, B, C, and D may result in a change in the sheer stress.

Infill patterns may intersect with one another, in which the infill may be printed by interrupting one wall of the infill. That wall of the infill may then be filled in by the perpendicular wall to produce the grid infill in FIG. 17. The grid infill can be a continuous infill-structure with improved strength. The infill material may carry shear stresses in certain directions. If insufficient strength is developed for the printed part, shear stress failure can result. FIG. 19 illustrates the direction of shear stress (σ_(zx)) that can lead to shear stress failure. As an example, if the shear stress is too large, or if the material strength resisting the shearing mode is too low, then failure of the infill can occur. Such a failure may occur for for beam and plate structural elements.

The infill pattern may preferably be a wave or a combination of waves. For continuous fiber composite material, the grid infill pattern can cause an uneven z-layer height if one fiber prints on-top of another fiber. Additionally the multiple turns, for example if the infill is printed in the y-direction, can slow down the printing for the continuous fiber. Sharp turns may not be possible because of breakage or fiber damage to the continuous fiber. Finally, cutting the fiber frequently can also slows down the printing process and weakens the final infill structure.

FIG. 20 illustrates a cosine and sine harmonic infill pattern. The infill pattern may be selected from the group consisting of honeycomb, grid, harmonic, linear, diagonal, rectilinear, concentric, Hilbert curve, Archimedean chords, octagram spiral, and any combination thereof. The infill pattern may be harmonic. The infill patterns may be a wave selected from the group consisting of cosine, sine, fourier series, non-harmonic waves, transverse wave, longitudinal wave, plane waves, and harmonic waves. The harmonic wave may be a harmonic standing wave. The harmonic standing waves may comprise n waves and n+1 nodes, wherein n may be at least about 1, at least about 2, at least about 3, at least about 4, at least about 5, at least about 6, at least about 7, at least about 8, at least about 9, at least about 10, at least about 20, at least about 30, at least about 40, at least about 50, at least about 60, at least about 70, at least about 80, at least about 90, at least about 100, at least about 200, at least about 300, at least about 400, at least about 500, at least about 600, at least about 700, at least about 800, at least about 900, at least about 1000, at least about 5000, at least about 10,000, at least about 100,000, or at least about 500,000. The parameter ‘n’ may be the number of waves. The infill pattern may change as the wavelength, amplitude, and combination of the waves change. Assigning the printed part a wave infill pattern may result in continuous printing, can improve the shear strength against the failure mode illustrated in FIG. 19, and can improve the build speed. The three wave sequences of FIG. 20 may be printed in succession. Additionally, continuous printing can result in the formation of long paths without crossing of fibers and with minimal cutting. The cutting may occur at the end of the structural element. The design of proper wave geometry may also lead to the connection of the ends of a portion of the infill walls with conformal curves. With harmonic infill patterns, the thin walls of the infill can be supported by adjacent infill material, thus, stabilizing the infill against buckling. The harmonic pattern may be constructed so the separate curves can touch one another as illustrated in FIG. 20. Furthermore, the harmonic pattern can be modulated spatially in both amplitude and frequency to accommodate different strength requirements, fiber orientation, and different tool turn radii limitations.

A fine mesh for a repeating infill pattern may be generated. Since the infill is a repeating pattern only one fine mesh for a repeating infill region may be needed. The material properties for the repeating pattern section can be determined using the same intersection algorithm as described for the large scale regions as described herein. At least one repeating unit of the repeating pattern can comprise boundary regions and boundary nodes. The boundary nodes may provide stress measurements of the repeating pattern of the infill pattern.

FIG. 21 illustrates a sub-model 2100 of an infill material surrounded by large scale solid materials 2101. The G-code and intermediate files can identify the attachment points of the infill to the remaining structure. The attachment points may be represented by the boundary nodes (B). Portion 2102 depicts a sub-model of the infill material. The repeating pattern of the sub-model is a parallelogram surrounded by boundary and internal nodes. Portion 2103 illustrates a part of the infill sub-model(s) that contains internal nodes (I). The sub-model can be analyzed as a finite element mesh along with material properties. The sub-model may also be analyzed as substructures or super-elements. This analysis can allow for a reduction of the large stiffness matrix for the repeating pattern to the boundary nodes (B). The analysis can further result in the repeating pattern being represented with a reduced set of degrees-of-freedom (DOF). The same process can be performed for all other repeating patterns (sub-models), with at most about one model being required for each unique repeating pattern. The total stiffness of the large scale regions along with the sub-structures' stiffnesses can be combined into an overall structural model and analyzed. The number of DOF's for sub-model 2100 may be greatly reduced compared to that determined by the intersection algorithm as described for the “large scale” region of part 1500 described herein.

After the overall structural analysis is performed, the displacement, stress, stiffness, and strain in all of the large scale solid regions can be determined using FEA procedures. A force may be applied on an object and the displacement, stress, stiffness, and strain values may be determined at each point along the material. The overall structural analysis can include the stiffness measurements from all sub-models. For repeating pattern infills, the computed boundary displacements can be applied to the sub-models that were created to form the sub-model stiffness matrix. From these sub-models, detailed stresses anywhere inside the infill can be determined. The same substructure can be analyzed for different sets of boundary displacements, thus determining peak stresses anywhere inside the printed part. The displacement, stress, stiffness, and strain measurements can then be used to drive tool path through optimization procedures such as examining levels and directions of principal stresses, optimizing layer thickness, and print orientation.

In another aspect, the disclosure provides a method for printing a part having a non-uniform stress profile. In computer memory, a computer model of the part may be received. The part may be partitioned into at least (i) a first region having a first stress profile and (ii) a second region having a second stress profile that is different than the first stress profile. A print head toolpath may be generated in accordance with the first stress profile and the second stress profile. The print head toolpath can compensate for stress difference(s) between the first region and the second region. Instructions comprising the toolpath for use in printing the part may be outputted. The instructions may comprise use of local thickening, strut addition, or hollowing for stress reduction. The part may then be printed. The printing may be fused filament fabrication. The first stress profile and the second stress profile can comprise maximum non-uniform stress profiles and minimum non-uniform stress profiles. The stress profile may provide a direction of stress and stress values. Fiber reinforcement may be included along maximum non-uniform stress profiles of the first region. Fiber reinforcement may be included along maximum non-uniform stress profiles of the second region. The second region can enclose and/or connect to at least a portion of the first region.

Principle stress can be the maximum normal stress that a body can carry at a particular point and can be derived from the 3D stress tensor and represent extrema. Extrema may be the maximum and minimum stresses. Principal stresses can carry the magnitude and direction of the extrema stresses and can be oriented on the area perpendicular to the associated directions. The principal stresses can generate a principal stress plot from a finite element model of a part. The stress along the part may be measured as the force per unit area on a reference area. By placing fiber along these extrema directions, the orientation of the material can be optimized and making sure the stress level will not exceed a maximum value, thereby the toolpath can be determined.

Partitioning can generate one or more parameters for printing the part. One or more parameters may be selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing. Partitioning may generate one or more numerical control programming code of the partitioned computer model. The numerical control programming code can comprise G-code files and intermediate files. The G-code files may comprise one or more of rapid movement, controlled feed in an arc or straight line, series of controlled feed movements, switch coordinate systems, and set of tool information. The intermediate files can comprise supplemental files, tools for a primary build output, automatically generated source files, or build output from helper tools. Partitioning can comprise slicing the part into a plurality of layers. Partitioning may determine the toolpath based upon built in rules with the user input. The method for performing analysis on a part for printing may further comprise performing finite element analysis on the toolpath. Once performance metrics are determined, they may be used to optimize fiber orientation for 3D printed parts. The tool path can dictate the fiber orientation, strength and stiffness properties, and print speed.

FIG. 22 illustrates the use of extremum stress vectors in driving tool path trajectory of a particular part. In FIG. 22, a vector field has been connected using a visual approach. The 2201 and 2202 arrows represent the drive tool path trajectory. The 2203 arrows represent extremum stress vector plots. Extremum stress may be determined by composing together the maximum and minimum principal stresses. Once stress is applied to a portion of the part, the arrows 2201 can indicate the direction the material will move. In turn, regions with high stress can be identified and additional fiber may be added to the material for strength. The technique of connecting together the extremum vector plot can be automated using algorithms. The algorithm may be the algorithm used in computational fluid dynamics (CFD) for plotting streamline and pathlines for fluid flow problems. Additional processing of the data may be necessary to compensate for areas in which the extremum stresses are low. Since the stress levels are low in magnitude, the guidance provided by the directions may not be critical. As a result, additional flexibility regarding the tool path in these regions may be considered.

Another criterion that can be used to determine the material orientation is the Tsai-Wu (TW) failure criteria. The TW criterion is a material failure theory for anisotropic composite materials of varying strengths in tension and compression. The criteria may comprise an index in a laminate and the index may be at most about 0.1, at most about 0.2, at most about 0.3, at most about 0.4, at most about 0.5, at most about 0.6, at most about 0.7, at most about 0.8, at most about 0.9, or at most about 1. Preferably as the index approaches a value of 1, the criteria can predict failure of the part. This criterion can determine the appropriate fiber orientations and tool path. The same approach for connecting together the vector plot into a tool path may then be used as described in the principle stress approach described herein.

In another aspect, the disclosure provides a method for optimizing a toolpath trajectory for printing a part using a virtual three-dimensional printer to visualize a virtual 3D printing process. Such visualization may be used to print the part, in some cases once the toolpath has been optimized or otherwise found to be ready for use to print the part. Alternatively, such visualization may be in the absence of printing the part. In computer memory, a computer model of the part may be received and virtual printing of the part may be initiated in accordance with one or more printing characteristic of a three-dimensional printer. The virtual printing may be performed along a virtual print head toolpath in accordance with a computer model of the part. During virtual printing of the part, (i) one or more physical properties of the part may be obtained using a physical model, and (ii) whether one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part may be determined. The virtual print head toolpath can be adjusted upon determining that one or more physical properties of the part measured in (i) do not meet at least one predetermined performance metric of the part to yield an adjusted print head toolpath. The virtual printing maybe performed in the absence of printing the part. After the virtual printing is complete, the adjusted print head toolpath may be outputted. Additionally, it may be determined that one or more physical properties of the part measured in (i) meet at least one predetermined performance metric of the part under the adjusted print head toolpath. One or more physical properties may be selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, and melt density. Virtual printing of the part may be continued along the adjusted print head toolpath. The virtual printing of the part may be displayed to a user on a graphical user interface. The displaying of the virtual printing can comprise displaying the virtual print head tool path on the graphical user interface. The print head toolpath may be further used to print the part. The part may be printed using fused filament fabrication. Virtual printing may be in the absence of printing the part. The method for optimizing the toolpath trajectory for printing a part may further comprise printing the part. The part may be printed at least in part while virtually printing the part. The part may be printed along the print head tool path. The part may be printed along the adjusted print head tool path. The part may be printed using fused filament fabrication. The method for optimizing the toolpath trajectory for printing a part may further comprise electronically outputting the adjusted print head tool path.

During 3D printing the quality of the final part may be enhanced by determining and tracking the deviations of the actual as-built part and the theoretical build. Prior to initiating virtual printing of the part, a first software may be provided to perform analysis of the part and to determine optimization metrics for the part. The method for optimizing the toolpath trajectory for printing the part may further comprise generating one or more optimization metrics for the part prior to initiating virtual printing of the part. The one or more optimization metrics may be selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.

Using a second software, the virtual build simulator can create a “virtual build” model of the part. Such virtual build may be a complete virtual build. The virtual build simulator can reveal the final shape of the part and provide the user with visualization of the build in a virtual 3D printing process. The final shape of the part may match the input CAD drawing. Using the simulator, first, a 3D constructive geometry model may be developed. Graphically, users can visualize in 3D, the build process. This can allow for prior screening and detection of defects in the build process. Possible defects can include the inability of the robot to execute certain commands or resulting voids that may occur due to basic tool path algorithm. The virtual build model may also illustrate inefficiencies in the generated tool path and can therefore be used as a tool to develop better or more efficient algorithms for printing 3D parts based solely on 3D geometrical considerations.

Starting with the virtual constructive solid geometry part, refinement for the virtual build simulator can introduce important physical parameters into the build process. The physical parameters may comprise, but not be limited to, thermal modeling, stress modeling and rheology (flow) modeling, and applied pressure and stresses during deposition, or any combination thereof. Knowledge of the thermal field during the build can impact material process optimization. One or more of these parameters can help improve accuracy of the simulation result. For example, for best adhesion the temperature during deposition should be a certain optimum range. Different temperature ranges may lead to a corresponding simulation result. Variation of the physical parameters may or may not lead to simulation results that can be graphically visualized by a user. In some cases, a user may be able to visualize the simulation results directly associated to one or more parameters presented in the graphical model. In some cases, the results may be presented in a numerical format and a user may receive a warning indicative of a weak region of the part. The rheology of the material can impact the shape of the deposited bead and it's deviation from an ideal cross-sectional shape. The ideal cross-sectional shape may be rectangular, circular, triangular, trapezoidal, polygonal, or elliptical. The applied pressure during deposition can have a direct effect on the final material strength. The residual stresses that occur in the part during cool-down can cause part distortion at room temperature. Residual stresses may also creep due to viscoelastic effects. Being able to control the residual stresses can result in a higher quality part with much better performance characteristics. Accounting for residual stresses in the as-built part can result in a more accurate prediction of overall part strength and thermal distortion due to different operating temperatures for the part.

From the 3D constructive geometry model, it can be envisioned that a finite element mesh may be generated that accurately represents the part. This mesh can change during building of the part. At any point in the build process, a physics model can be applied to the current configuration. Using time or pseudo time stepping in the analysis can allow for transfer of a final state(s) from a given time operation to an initial state(s) for a subsequent time operation, thus, capturing the time evolution of the part state variables which will dictate the final build geometry, residual stresses, material strengths and final performance of the part.

In another aspect, the disclosure provides a method for optimizing a tool path trajectory for printing a part using a three-dimensional printer. The part may be printed using a three-dimensional printer. The printing may be performed adjacent to a base along a toolpath in accordance with a computer model of the part. During printing of the part with the three-dimensional printer along the toolpath, (i) one or more sensors may be used to measure one or more structural or internal properties of the part and (ii) it may be determined whether one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part. The sensors may be external to the base. During printing of the part with the three-dimensional printer along the toolpath, (i) an optical sensor may be used to measure one or more structural or internal properties of the part and (ii) it may be determined whether one or more structural or internal properties of the part measured in (i) meet at least one performance metric of the part. The toolpath may be adjusted upon determining that one or more structural or internal properties of the part measured in (i) do not meet at least one predetermined performance metric of the part, to yield an adjusted toolpath. The part may continue to print along the adjusted toolpath. The printing may include fused filament deposition to generate at least a portion of the part.

The method for optimizing the tool path trajectory for printing a part using a three-dimensional printer may further comprise generating one or more optimization metrics for the part prior to initiating printing of the part. The method for optimizing the tool path trajectory for printing the part using a three-dimensional printer may further comprise prior to initiating printing of the part, analyzing the part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof. One or more optimization metrics can comprise one or more members selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.

Structural and internal properties can comprise one or more members selected from the group consisting of defects, strength, voids, surface roughness, stress, strain, tension, shear, stiffness, factor-of safety, weight, envelop geometry, thermal performance, electrical performance, porosity, infill, number of shells, layer height, solid density, and melt density.

Monitoring one or more critical parameters provides an on-the-fly data used for predicting printing results or for improving the future simulation model. Also, waste associated with the printing may be eliminated resulting in a more cost effective process. Current technologies can create surface finishes that are too rough and too difficult to scan with a touch probe. Issues that can arise during the scans may include surface damage, obscurity of view of key features, inaccessibility of key features, internal structures can be difficult to measure, high cost of contact and non-contact measurement outside of x-ray tomography.

During 3D printing, certain parameters may be critical to printing high quality parts. These parameters include substrate temperature, melt zone temperature, as-built geometry, surface roughness and texture and density. Other critical visible or non-visible metrics include characterization of chemistry, bonding or adhesion strength. Measuring one or more structural or internal properties of the part can comprise one or more methods selected from the group consisting of scattered and reflected or absorbed radiation, x-ray imaging, sound waves, scatterometry techniques, ultrasonic techniques, X-ray Photoelectron Spectroscopy (XPS), Four Transform Infrared Spectroscopy (FTIR), Raman Spectroscopy and Laser-Microprobe Mass Spectrometry (LMMS). Specific metrology beneficial to the end goals of characterizing the critical process parameters can be used. This in-situ metrology coupled with fast processing of data can enable open or closed loop control of the manufacturing process. Sensors appropriate to the key parameters of interest can be selected and utilized during the part printing process. The sensors may comprise a camera. The camera can detect light in the infrared or visible portion of the electromagnetic spectrum. Sensors such as IR cameras may be used to measure temperature fields. An image processing algorithm may be used to evaluate data generated by one or more sensors, to extract one or more structural or internal properties of the part. Visual (e.g. high magnification) microscopy from digital camera(s) can be used with proper software processing to detect voids, defects, and surface roughness. In order to utilize this technique, potentially large quantities of data may need to be interrogated using image processing algorithms in order to extract features of interest. Scatterometry techniques may be adapted to provide roughness or other data.

Ultrasonic techniques can be used to measure solid density and fiber and particle density which in turn may be useful in characterizing bond strength and fiber dispersion. The characterization can affect material strength. Ultrasonic techniques can also be used to measure thickness of features. Chemical bonding characterization, which may be useful for understanding fiber and/or matrix adhesion and layer-to-layer bonding, can be performed by multiple techniques such as XPS (X-ray Photoelectron Spectroscopy), FTIR (Four Transform Infrared Spectroscopy) and Raman Spectroscopy and Laser-Microprobe Mass Spectrometry (LMMS). One or more of these techniques may be utilized as part of the in-situ metrology for 3D printing. Ex-situ techniques may also be utilized in order to help provide appropriate calibration data for the in-situ techniques.

Sensors may be positioned on the robot end-effector of the three-dimensional printer in order to provide a sensor moving along with the deposited material. A robot end-effector may be a device positioned at the end of a robotic arm. The robot end-effector may be programmed to interact with its surrounding environment. Sensors may be located at various positions. The positions can be on-board the robot, on the effector, or deployed in the environment. Sensors may be in communication with the system. The system can comprise one or more processors, a communication unit, memory, power supply, and storage. The communications unit can comprise an input and an output. The communication unit can be wired or wireless. The sensor measurements may or may not be stored in a database, and may or may not be used in future simulation and optimization operations. In-situ measurements may also be made using alternative methods with sensors in a cell but not directly attached to the robot end-effector.

Software technologies may be leveraged in order to differentiate its product and help deliver high performance parts. Certain users may not wish to purchase their own specialized computing resources. Appropriate software may be ported and executable in-the-cloud. This can ensure that a developed code is not operating system specific. The system may be a Windows, Linux, or Mac operating system. In-the-cloud software can include improvement of throughput of computer intensive jobs. The computer intensive jobs can comprise FEA or preparation of CAD models through slicing algorithms. Additionally, in-the-cloud computing can allow for the ability to utilize multi-processing and parallelization techniques. The developed software may be enabled to leverage these programming paradigms.

Computer Systems

The present disclosure provides computer systems that may be programmed or otherwise configured to implement devices, methods and systems of the present disclosure. FIG. 23 shows a computer system 2301 that is programmed or otherwise configured to implement 3D printing methods and systems of the present disclosure. The computer system 2301 can regulate various aspects of methods the present disclosure, such as, for example, partitioning a computer model of a part and generating a mesh array from the computer model.

The computer system 2301 includes a central processing unit (CPU, also “processor” and “computer processor” herein) 2305, which can be a single core or multi core processor, or a plurality of processors for parallel processing. The computer system 2301 also includes memory or memory location 2310 (e.g., random-access memory, read-only memory, flash memory), electronic storage unit 2315 (e.g., hard disk), communication interface 2320 (e.g., network adapter) for communicating with one or more other systems, and peripheral devices 2325, such as cache, other memory, data storage and/or electronic display adapters. The memory 2310, storage unit 2315, interface 2320 and peripheral devices 2325 are in communication with the CPU 2305 through a communication bus (solid lines), such as a motherboard. The storage unit 2315 can be a data storage unit (or data repository) for storing data. The computer system 2301 can be operatively coupled to a computer network (“network”) 2330 with the aid of the communication interface 2320. The network 2330 can be the Internet, an internet and/or extranet, or an intranet and/or extranet that is in communication with the Internet. The network 2330 in some cases is a telecommunication and/or data network. The network 2330 can include one or more computer servers, which can enable distributed computing, such as cloud computing. The network 2330, in some cases with the aid of the computer system 2301, can implement a peer-to-peer network, which may enable devices coupled to the computer system 2301 to behave as a client or a server.

The CPU 2305 can execute a sequence of machine-readable instructions, which can be embodied in a program or software. The instructions may be stored in a memory location, such as the memory 2310. The instructions can be directed to the CPU 1805, which can subsequently program or otherwise configure the CPU 2305 to implement methods of the present disclosure. Examples of operations performed by the CPU 2305 can include fetch, decode, execute, and writeback.

The CPU 2305 can be part of a circuit, such as an integrated circuit. One or more other components of the system 2301 can be included in the circuit. In some cases, the circuit is an application specific integrated circuit (ASIC).

The storage unit 2315 can store files, such as drivers, libraries and saved programs. The storage unit 2315 can store user data, e.g., user preferences and user programs. The computer system 2301 in some cases can include one or more additional data storage units that are external to the computer system 2301, such as located on a remote server that is in communication with the computer system 2301 through an intranet or the Internet.

The computer system 2301 can communicate with one or more remote computer systems through the network 2330. For instance, the computer system 2301 can communicate with a remote computer system of a user (e.g., customer or operator of a 3D printing system). Examples of remote computer systems include personal computers (e.g., portable PC), slate or tablet PC's (e.g., Apple® iPad, Samsung® Galaxy Tab), telephones, Smart phones (e.g., Apple® iPhone, Android-enabled device, Blackberry®), or personal digital assistants. The user can access the computer system 2301 via the network 2330.

Methods as described herein can be implemented by way of machine (e.g., computer processor) executable code stored on an electronic storage location of the computer system 1801, such as, for example, on the memory 2310 or electronic storage unit 2315. The machine executable or machine readable code can be provided in the form of software. During use, the code can be executed by the processor 2305. In some cases, the code can be retrieved from the storage unit 2315 and stored on the memory 2310 for ready access by the processor 2305. In some situations, the electronic storage unit 2315 can be precluded, and machine-executable instructions are stored on memory 2310.

The code can be pre-compiled and configured for use with a machine having a processer adapted to execute the code, or can be compiled during runtime. The code can be supplied in a programming language that can be selected to enable the code to execute in a pre-compiled or as-compiled fashion.

Aspects of the systems and methods provided herein, such as the computer system 1801, can be embodied in programming. Various aspects of the technology may be thought of as “products” or “articles of manufacture” typically in the form of machine (or processor) executable code and/or associated data that is carried on or embodied in a type of machine readable medium. Machine-executable code can be stored on an electronic storage unit, such as memory (e.g., read-only memory, random-access memory, flash memory) or a hard disk. “Storage” type media can include any or all of the tangible memory of the computers, processors or the like, or associated modules thereof, such as various semiconductor memories, tape drives, disk drives and the like, which may provide non-transitory storage at any time for the software programming. All or portions of the software may at times be communicated through the Internet or various other telecommunication networks. Such communications, for example, may enable loading of the software from one computer or processor into another, for example, from a management server or host computer into the computer platform of an application server. Thus, another type of media that may bear the software elements includes optical, electrical and electromagnetic waves, such as used across physical interfaces between local devices, through wired and optical landline networks and over various air-links. The physical elements that carry such waves, such as wired or wireless links, optical links or the like, also may be considered as media bearing the software. As used herein, unless restricted to non-transitory, tangible “storage” media, terms such as computer or machine “readable medium” refer to any medium that participates in providing instructions to a processor for execution.

Hence, a machine readable medium, such as computer-executable code, may take many forms, including but not limited to, a tangible storage medium, a carrier wave medium or physical transmission medium. Non-volatile storage media include, for example, optical or magnetic disks, such as any of the storage devices in any computer(s) or the like, such as may be used to implement the databases, etc. shown in the drawings. Volatile storage media include dynamic memory, such as main memory of such a computer platform. Tangible transmission media include coaxial cables; copper wire and fiber optics, including the wires that comprise a bus within a computer system. Carrier-wave transmission media may take the form of electric or electromagnetic signals, or acoustic or light waves such as those generated during radio frequency (RF) and infrared (IR) data communications. Common forms of computer-readable media therefore include for example: a floppy disk, a flexible disk, hard disk, magnetic tape, any other magnetic medium, a CD-ROM, DVD or DVD-ROM, any other optical medium, punch cards paper tape, any other physical storage medium with patterns of holes, a RAM, a ROM, a PROM and EPROM, a FLASH-EPROM, any other memory chip or cartridge, a carrier wave transporting data or instructions, cables or links transporting such a carrier wave, or any other medium from which a computer may read programming code and/or data. Many of these forms of computer readable media may be involved in carrying one or more sequences of one or more instructions to a processor for execution.

The computer system 2301 can include or be in communication with an electronic display 2335 that comprises a user interface (UI) 2340 for providing, for example, a print head tool path to a user. Examples of UI's include, without limitation, a graphical user interface (GUI) and web-based user interface.

Methods and systems of the present disclosure can be implemented by way of one or more algorithms. An algorithm can be implemented by way of software upon execution by the central processing unit 2305. The algorithm can, for example, partition a computer model of a part and generate a mesh array from the computer model.

The computer system 2301 can include a 3D printing system. The 3D printing system may include one or more 3D printers. A 3D printer may be, for example, a fused filament fabrication (FFF) printer. Alternatively or in addition to, the computer system 2301 may be in remote communication with the 3D printing system, such as through the network 2330.

While preferred embodiments of the present invention have been shown and described herein, it will be obvious to those skilled in the art that such embodiments are provided by way of example only. It is not intended that the invention be limited by the specific examples provided within the specification. While the invention has been described with reference to the aforementioned specification, the descriptions and illustrations of the embodiments herein are not meant to be construed in a limiting sense. Numerous variations, changes, and substitutions will now occur to those skilled in the art without departing from the invention. Furthermore, it shall be understood that all aspects of the invention are not limited to the specific depictions, configurations or relative proportions set forth herein which depend upon a variety of conditions and variables. It should be understood that various alternatives to the embodiments of the invention described herein may be employed in practicing the invention. It is therefore contemplated that the invention shall also cover any such alternatives, modifications, variations or equivalents. It is intended that the following claims define the scope of the invention and that methods and structures within the scope of these claims and their equivalents be covered thereby. 

What is claimed is:
 1. A method for performing analysis on a part for printing, comprising: (a) receiving, in computer memory, a computer model of said part; (b) partitioning said computer model of said part into at least (i) a first region comprising one or more voids and (ii) a second region that is filled with a representation of a material for forming said part, to yield a partitioned computer model; (c) generating at least a first mesh in said first region and at least a second mesh in said second region to yield a mesh array in said partitioned computer model; (d) using said mesh array, including said first mesh and said second mesh, to determine one or more properties of said part; and (e) upon determining that said one or more properties meet a predetermined value(s), using said mesh array to generate a print head toolpath usable to print said part.
 2. The method of claim 1, further comprising using said print head toolpath to print said part.
 3. The method of claim 2, further comprising using fused filament fabrication to print said part.
 4. The method of claim 1, wherein said first mesh is at a smaller scale than said second mesh.
 5. The method of claim 1, wherein said second region encloses and/or connects to at least a portion of said first region.
 6. The method of claim 1, wherein further comprising performing finite element analysis on said toolpath.
 7. The method of claim 6, further comprising subjecting said tool path to an intersection algorithm.
 8. The method of claim 7, wherein said intersection algorithm determines a fiber direction dependent material propert(ies).
 9. The method of claim 1, wherein said first mesh is created for an infill pattern of said part to determine material properties of infill regions of said part.
 10. The method of claim 9, wherein said infill pattern is a repeating pattern.
 11. The method of claim 10, wherein said infill pattern is harmonic.
 12. The method of claim 10, wherein said first mesh comprises a sub-mesh for at least one repeating unit of said repeating pattern of said infill pattern.
 13. The method of claim 12, wherein said at least one repeating unit of said repeating pattern comprises boundary regions and boundary nodes.
 14. The method of claim 13, wherein said boundary nodes provide stress measurements of said repeating pattern of said infill pattern.
 15. The method of claim 1, wherein said partitioning said computer model comprises slicing said computer model.
 16. The method of claim 1, further comprising electronically outputting said print head tool path on a user interface.
 17. The method of claim 16, wherein said user interface is a graphical user interface.
 18. A method for optimizing a toolpath trajectory for printing a part, comprising: (a) receiving, in computer memory, a computer model of said part; (b) initiating virtual printing of said part in accordance with one or more printing characteristics of a three-dimensional printer, which virtual printing is performed along a virtual print head toolpath in accordance with said computer model of said part; (c) while virtually printing said part, (i) obtaining one or more physical properties of said part using a physical model, and (ii) determining whether said one or more physical properties of said part measured in (i) meet at least one predetermined performance metric of said part; and (d) adjusting said virtual print head toolpath upon determining that said one or more physical properties of said part measured in (i) do not meet said at least one predetermined performance metric of said part, to yield an adjusted print head toolpath.
 19. The method of claim 18, further comprising determining that said one or more physical properties of said part measured in (i) meet at least one predetermined performance metric of said part under said adjusted print head toolpath.
 20. The method of claim 18, wherein said virtual printing is in the absence of printing said part.
 21. The method of claim 18, further comprising printing said part.
 22. The method of claim 21, wherein said part is printed at least in part while virtually printing said part.
 23. The method of claim 21, wherein said part is printed along said print head tool path.
 24. The method of claim 21, wherein said part is printed along said adjusted print head tool path.
 25. The method of claim 21, wherein said part is printed using fused filament fabrication.
 26. The method of claim 18, further comprising electronically outputting said adjusted print head toolpath.
 27. The method of claim 18, further comprising displaying said virtual printing of said part to a user on a graphical user interface.
 28. The method of claim 27, wherein displaying said virtual printing comprises displaying said virtual print head toolpath on said graphical user interface.
 29. The method of claim 18, further comprising generating one or more optimization metrics for said part prior to initiating virtual printing of said part, wherein said one or more optimization metrics is selected from the group consisting of strength, structural deflections, stress, strain, tension, shear, load capacity, stiffness, factor-of safety, weight, strength to weight ratio, envelop geometry, minimal print time, thermal performance, electrical performance, porosity, infill, number of shells, layer height, extruder temperature, solid density, melt density, printing speed, and print head movement speed.
 30. A method for optimizing a tool path trajectory for printing a part using a three-dimensional printer, comprising: (a) initiating printing of said part using said three-dimensional printer, which printing is performed adjacent to a base along a toolpath in accordance with a computer model of said part; (b) while printing said part with said three-dimensional printer along said toolpath, (i) using one or more sensors to measure one or more structural or internal properties of said part, which one or more sensors are external to said base, and (ii) determining whether said one or more structural or internal properties of said part measured in (i) meet at least one performance metric of said part; (c) adjusting said toolpath upon determining that said one or more structural or internal properties of said part measured in (i) do not meet said at least one performance metric of said part, to yield an adjusted toolpath; and (d) continuing to print said part along said adjusted toolpath.
 31. The method of claim 30, wherein said printing includes use of fused filament deposition to generate at least a portion of said part.
 32. The method of claim 30, further comprising generating one or more optimization metrics for said part prior to initiating printing of said part.
 33. The method of claim 30, further comprising, prior to initiating printing of said part, analyzing said part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof.
 34. The method of claim 30, further comprising using an image processing algorithm to evaluate data generated by said one or more sensors to extract said one or more structural or internal properties of said part.
 35. A method for optimizing a toolpath trajectory for printing a part using a three-dimensional printer, comprising: (a) printing said part using said three-dimensional printer, which printing is performed along a toolpath in accordance with a computer model of said part; (b) while printing said part with said three-dimensional printer along said toolpath, (i) using an optical sensor(s) to measure one or more structural or internal properties of said part, and (ii) determining whether said one or more structural or internal properties of said part measured in (i) meet at least one performance metric of said part; (c) adjusting said toolpath upon determining that said one or more structural or internal properties of said part measured in (i) do not meet said at least one performance metric of said part, to yield an adjusted print head toolpath; and (d) continuing to print said part along said adjusted toolpath.
 36. The method of claim 35, wherein said printing includes use of fused filament deposition to generate at least a portion of said part.
 37. The method of claim 35, further comprising generating one or more optimization metrics for said part prior to initiating printing of said part.
 38. The method of claim 35, further comprising, prior to initiating printing of said part, analyzing said part by performing thermal modeling, stress modeling, rheology modeling structural analysis, electrical performance, or any combination thereof.
 39. The method of claim 35, further comprising using an image processing algorithm to evaluate data generated by said optical sensor(s), to extract said one or more structural or internal properties of said part.
 40. A method for printing a part having a non-uniform stress profile, comprising: (a) receiving, in computer memory, a computer model of said part; (b) partitioning said part into at least (i) a first region having a first stress profile and (ii) a second region having a second stress profile that is different than said first stress profile; (c) generating a print head toolpath in accordance with said first stress profile and said second stress profile, which print head toolpath compensates for stress difference(s) between said first region and said second region; and (d) outputting instructions comprising said toolpath for use in printing said part.
 41. The method of claim 40, further comprising printing said part.
 42. The method of claim 41, further comprising using fused filament fabrication to print said part.
 43. The method of claim 41, further comprising including fiber reinforcement along maximum non-uniform stress profiles of said first region or second region.
 44. The method of claim 40, wherein said second region encloses and/or connects to at least a portion of said first region.
 45. The method of claim 40, wherein said partitioning generates one or more parameters for printing said part, wherein said one or more parameters is selected from the group consisting of filament diameter, layer thickness, infill percentage, infill pattern, raster angle, build orientation, extrudate width, layer height, shell number, infill overlap, and grid spacing.
 46. The method of claim 40, wherein said partitioning comprises slicing said part into a plurality of layers.
 47. The method of claim 40, wherein further comprising performing finite element analysis on said tool path.
 48. A method for structurally analyzing a three-dimensional object, comprising: (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) using one or more computer processors to determine a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object.
 49. The method of claim 48, further comprising generating a mesh of analytic elements corresponding to the model of the three-dimensional object; and determining a trajectory of the at least one stiffness-contributing portion through the mesh of analytic elements.
 50. The method of claim 49, further comprising determining a three-dimensional stiffness of each of the analytic elements using the at least one stiffness-contributing portion.
 51. The method of claim 49, further comprising determining a three-dimensional stiffness of each of the analytic elements based at least in part on one or more of (i) the trajectory of the at least one stiffness-contributing portion through the analytic elements, (ii) the one or more properties of the material, and (iii) an orientation of the at least one stiffness-contributing portion relative to one another.
 52. The method of claim 51, further comprising: determining intersection points and directional vectors of the at least one stiffness contributing portion; using the intersection points to determine a volume of the analytic elements corresponding to the at least one stiffness contributing portion; and determining the three-dimensional stiffness of each of the analytic elements using the volume of the analytic elements corresponding to the at least one stiffness contributing portion, the one or more properties of the material, one or more properties of the at least one stiffness contributing portion, and the directional vectors.
 53. The method of claim 49, wherein determining a trajectory comprises determining the performance of the three-dimensional object based at least in part on an aggregation of three-dimensional stiffnesses of the analytic elements.
 54. The method of claim 48, wherein the performance of the three-dimensional object determined in (b) comprises at least one of a displacement field and a stress field of the three-dimensional object.
 55. The method of claim 54, further comprising: receiving use information for the three-dimensional object; and determining at least one of the displacement field and the stress field of the three-dimensional object based at least in part on the use information.
 56. The method of claim 48, further comprising displaying, on a graphical user interface, (i) the performance or (ii) the print head tool path.
 57. The method of claim 56, further comprising: receiving instruction from a user to view a progression of the print head during simulated printing of the three-dimensional object along the print head tool path; and displaying on the graphical user interface the performance and at least a portion of the print head tool path.
 58. The method of claim 48, further comprising using a three-dimensional printer comprising the print head to print at least a portion of the three-dimensional object along the print head tool path.
 59. The method of claim 58, wherein the at least the portion of the three-dimensional object is printed if the performance meets with respect to at least one reference performance.
 60. The method of claim 48, further comprising: generating an additional print head tool path upon processing the performance of the three-dimensional object against at least one reference performance, which additional print head tool path provides an additional performance of the three-dimensional object; and electronically outputting the additional print head tool path, wherein the additional print head tool path is usable by the print head to print the three-dimensional object from the material comprising the fiber.
 61. A non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing a three-dimensional object, the method comprising: (a) using a model of the three-dimensional object, generating a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (b) determining a performance of the three-dimensional object based at least in part on (i) one or more properties of the material and (ii) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (c) electronically outputting the performance of the three-dimensional object.
 62. A system for structurally analyzing a three-dimensional object, comprising: computer memory comprising machine-executable instructions stored therein for structurally analyzing the three-dimensional object; one or more computer processors in electrical communication with the computer memory and programmed to execute the machine-executable instructions to: (i) use a model of the three-dimensional object to generate a print head tool path that is usable by a print head to print the three-dimensional object from a material comprising a fiber; (ii) determine a performance of the three-dimensional object based at least in part on (a) one or more properties of the material and (b) a trajectory of at least one stiffness-contributing portion of the material determined based at least in part on the print head tool path, wherein the at least one stiffness-contributing portion corresponds to the fiber; and (iii)electronically output the performance of the three-dimensional object.
 63. The system of claim 62, further comprising a print head that is configured to print the three-dimensional object along the print head tool path.
 64. A method for structurally analyzing and/or printing a part, comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) using one or more computer processors to determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).
 65. The method of claim 64, further comprising determining one or more properties for each of the voxels in the layout, wherein (d) comprises determining the performance of the part further based on the one or more properties of each of the voxels.
 66. The method of claim 65, further comprising determining one or more local properties of each of the analysis elements of the mesh based at least in part on the one or more properties of each of the voxels, wherein (d) comprises determining the performance of the part based at least in part on an aggregation of the one or more local properties of each of the analysis elements.
 67. The method of claim 64, wherein determining the layout of the voxels comprises determining at least one of a number of the voxels, a shape of each of the voxels, a size of each of the voxels, a location of each of the voxels, and an orientation of each of the voxels.
 68. The method of claim 64, further comprising receiving a predetermined performance of the part, wherein determining the layout of the voxels comprises determining the layout of the voxels based at least in part on the predetermined performance of the part.
 69. The method of claim 68, further comprising (i) making a comparison of the performance of the part with the predetermined performance; and (ii) selectively generating a new layout of the voxels based at least in part on the comparison.
 70. The method of claim 64, further comprising printing the part using the layout of voxels.
 71. The method of claim 70, wherein the part is generated if the performance determined in (e) meets a reference performance.
 72. The method of claim 64, wherein the voxels correspond to fibers in the part.
 73. A non-transitory computer-readable medium comprising machine-executable code that, upon execution by one or more computer processors, implements a method for structurally analyzing and/or printing a part, the method comprising: (a) receiving, in computer memory, a model of the part for three-dimensional printing; (b) determining a layout of voxels within the model; (c) generating a mesh of analysis elements within the model; (d) determining a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) providing an electronic output of the performance of the part determined in (d).
 74. The non-transitory computer-readable medium of claim 73, wherein the method further comprises determining one or more properties for each of the voxels in the layout, and determining the performance of the part further based on the one or more properties of each of the voxels.
 75. The non-transitory computer-readable medium of claim 74, wherein the method further comprises determining one or more local properties of each of the analysis elements of the mesh based at least in part on the one or more properties of each of the voxels, and determining the performance of the part based at least in part on an aggregation of the one or more local properties of each of the analysis elements.
 76. The non-transitory computer-readable medium of claim 73, wherein the method further comprises receiving a predetermined performance of the part and use information for the part, wherein (b) comprises determining the layout of the voxels based at least in part on the predetermined performance of the part, and wherein (d) comprises determining at least one of a displacement field and a stress field of the part further based on the use information.
 77. The non-transitory computer-readable medium of claim 76, wherein the method further comprises making a comparison of the performance of the part with the predetermined performance, and selectively generating a new layout of the voxels based at least in part on the comparison.
 78. The non-transitory computer-readable medium of claim 73, wherein providing the electronic output of the performance of the part comprises displaying a graphical representation of the performance overlapped with the model of the part and the layout of the voxels.
 79. A system for structurally analyzing and/or printing a part, comprising: computer memory comprising computer-executable instructions stored therein for analyzing and/or printing the part; and one or more computer processors in electrical communication with the computer memory and programmed to execute the computer-executable instructions to: (a) receive a model of the part for three-dimensional printing; (b) determine a layout of voxels within the model; (c) generate a mesh of analysis elements within the model; (d) determine a performance of the part based at least in part on intersections of the voxels and the analysis elements; and (e) provide an electronic output of the performance of the part determined in (d).
 80. A system for structurally analyzing a part, comprising: a display; a memory having computer-executable instructions stored thereon; and a processor in communication with the display and configured to execute the stored instructions to: receive a model of the part; receive a predetermined performance of the part; determine a layout of voxels within the model based at least in part on the predetermined performance; determine one or more properties for each of the voxels in the layout; generate a mesh of analysis elements within the model; determine one or more local properties of each of the analysis elements of the mesh based at least in part on intersections of the voxels and the analysis elements and based at least in part on the one or more properties of each of the voxels; receive use information for the part; predict a performance of the part based at least in part on an aggregation of the one or more local properties of each of the analysis elements and based at least in part on the use information; display the performance of the part overlapped with the model of the part and the layout of the voxels; make a comparison of the performance of the part with the predetermined performance; and selectively generate a new layout of the voxels based at least in part on the comparison. 